JS自学笔记04

arguments[索引]

实参的值

1、对象

1)创建对象

①调用系统的构造函数创建对象

var obj=new Object();
//添加属性。对象.名字=值;
obj.name="cc";
obj.age=18;
//添加方法
obj.eat=function(){...};
//调用
obj.eat();

②自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象)

工程模式:

对象名 Instanceof 对象名

根据对象是否属于给定类 返回布尔值

function createObject(){
var obj=new Object();
obj,name="cc";
obj.say=function(){
...
}
return obj;
} //调用
var per1=createObject(); function createObject(name,age){
var obj=new Object();
this.name=name;
this.age=age;
return obj;
}
自定义构造函数创建对象做了4件事
1、内存中开辟空间,存储创建的新的对象
2、把this设置为当前的对象
3、设置对象的属性和方法的值
4、返回this对象

示意图:

③字面量的方式创建对象

 var obj={};//创建了空对象

  var obj2={};
obj2.name="xx";
obj.say=function(){
...
};//属性和方法都是在类外添加的 var obj3={
name:"cc",
age:20,
say:function(){...}
}
缺陷是:一次性的对象

js是一门解释性,脚本,弱类型,基于对象,动态类型的语言。

访问属性的另一种方法:

function Person(name,age){
this.name=name;
this.age=age;
this.play=function(...){...};
}//自定义类
var obj=new Person("cc",20); obj["name"]=xx;
//通过中括号取代点
obj["play"]();

2、JSON



成对出现,是键值对。无论是键还是值都用双引号括起来

var json={
"name":"cc";
"age":"10";
"sex":"male";
};
//遍历
可以通过for-in循环
for(var key in json){
console.log(key);//key存储json对象中的属性名字
cosole.log(json[key]);
}//key处变量不一定要取名为key,自定义即可

3、简单类型和复杂类型

1)原始数据类型:number,string,boolean等

2)基本类型,简单类型,值类型。在栈中存储:number,string,boolean

3)复杂类型(引用类型):object

4)空类型:null,undefined

引用类型的值在栈和堆中存储。对象在堆上存储,地址在栈上存储

4、值类型与引用类型的传递

var obj={
name:"小明"
};
function f2(obj2){
obj2.name="xx";
}
f2(obj);
console.log(obj.name);//xx,因为obj与obj2所指向的地址都是相同的

值类型之间传递的是值,引用类型作为函数的参数,传递的是地址



因为第二条指令传的是num1的值,var了两个东西,地址不一样。

5、内置对象

js系统自带的对象

Math,Date,String,Array

6、Math对象

不是函数的对象

是静态对象,不需要创建,自己就是一个对象,方法(静态方法)直接通过这个对象的名字调用。不能实例化对象。实例方法必须通过实例对象调用。

Math.random();//随机数生成,范围是0~1

JS自学笔记04的更多相关文章

  1. JS自学笔记05

    JS自学笔记05 1.例题 产生随机的16进制颜色 function getColor(){ var str="#"; var arr=["0","1 ...

  2. JS自学笔记03

    JS自学笔记03 1.函数练习: 如果函数所需参数为数组,在声明和定义时按照普通变量名书写参数列表,在编写函数体内容时体现其为一个数组即可,再传参时可以直接将具体的数组传进去 即 var max=ge ...

  3. JS自学笔记02

    JS自学笔记02 1.复习 js是一门解释性语言,遇到一行代码就执行一行代码 2.查阅mdn web文档 3.提示用户输入并接收,相比之下,alert只有提示的作用: prompt(字符串) 接收: ...

  4. JS自学笔记01

    JS自学笔记01 1.开发工具 webstorm 2.js(javascript) 是一门脚本.解释性.动态类型.基于对象的语言 含三个部分: ECMAScript标准–java基本语法 DOM(Do ...

  5. JAVA自学笔记04

    JAVA自学笔记04 1.switch语句 1)格式:switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; - default: 语句体n+ ...

  6. Node.js自学笔记之回调函数

    写在前面:如果你是一个前端程序员,你不懂得像PHP.Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择.这段时间对node.js进行了简单的学习,在这里 ...

  7. 老男孩Python全栈开发(92天全)视频教程 自学笔记04

    day4课程目录: 逻辑运算符 while循环 day4课程内容梳理: 逻辑运算符 算数运算符:+,-,*,/,%,** 比较运算符:< ,>, ==,<=,>=,!=, 逻辑 ...

  8. JavaScript自学笔记(1)---表单验证,let和const,JSON文件

    今天开个JS自学笔记,本身JS的语法很简单,如果学过Java或者C系的都很容易,就不讨论了.主要是讨论实际应用的问题. 1.表单验证: a.html自动验证: HTML 表单验证可以通过浏览器来自动完 ...

  9. jQuery:自学笔记(4)——事件与事件对象

    jQuery:自学笔记(4)——事件与事件对象 jQuery中的事件 什么是事件 所谓事件,就是被对象识别的操作,即操作对象队环境变化的感知和反应,例如单击按钮或者敲击键盘上的按键. 所谓事件流,是指 ...

随机推荐

  1. A - Points and Segments CodeForces - 429E

    题解: 方法非常巧妙的一道题 首先考虑要求全部为0怎么做 发现是个欧拉回路的问题(很巧妙) 直接dfs一遍就可以了 而这道题 要求是-1,1,0 我们可以先离散化 完了之后判断每个点被奇数还是偶数条边 ...

  2. ab访问并发测试简要步骤

    工具: 1)ab -n 总访问次数  -c 并发用户数  目标url   查询某一个工具是哪个软件包安装的 rpm -qf 2)loadrunner 可视化 3)webbench 制作指定大小页面: ...

  3. Nginx 拒接服务漏洞(CVE-2016-0747)整改

    Nginx的拒绝服务漏洞主要影响版本为1.10.3之前的版本,为不影响原有nginx的使用,且为避免修改其它配置文件,可以通过编译nginx最新版本的执行文件去替换旧的执行文件,文中的场景为由ngin ...

  4. Codeforces 1045B Space Isaac

    Space Isaac 我们定义第一个集合为a, 第二个集合为b 先把a数组排序, 然后我们会以线段的形式得到b集合. 我们先用a[ 1 ]去和 b 中的元素结合, 只有size(a) 个数字未被覆盖 ...

  5. fillder--模拟弱网

    ##设置路径## Rules--Performemnts---Silamte Mordem Speeds 弱网原理 Rules—>Cutomize Rules打开CustomRules.js 文 ...

  6. Codeforces 1000G Two-Paths 树形动态规划 LCA

    原文链接https://www.cnblogs.com/zhouzhendong/p/9246484.html 题目传送门 - Codeforces 1000G Two-Paths 题意 给定一棵有 ...

  7. BZOJ4003 [JLOI2015]城池攻占 左偏树 可并堆

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4003 题意概括 题意有点复杂,直接放原题了. 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑 ...

  8. 如何使用java代码启动tomcat和打开浏览器

    1.用于代码启动tomcat,也可以用代码运行电脑应用程序 public static void main(String[] args) { /* new MyThread().start(); ne ...

  9. 解析eBay BASE模式、去哪儿及蘑菇街分布式架构

    目录:问题分析概念解读Most Simple原理解读eBey.去哪儿.蘑菇街分布式事务案例分析 参考资料 1.问题解析    要想做架构,必须识别出问题,即是谁的问题,什么问题.明显的,分布式架构解决 ...

  10. M. Subsequence 南昌邀请赛

    链接: https://nanti.jisuanke.com/t/38232 先给出一个s母串 然后给出n个子串 判断是否为母串的子序列 3000ms  2993ms过的.... 蒻鲫的代码: 建立表 ...