1 对象 (无序的数据集)
由若干个“键值对”(key-value)构成。
var a={name:xxx};
name--->key (键名) xxx--->value(键值)
name不用引号就是标识名,加了引号就是字符串。
大括号就定义了一个对象,它被赋值给变量a.
生成空对象 等价于下图1.1 键名
①对象的所有键名都是字符串,所以加不加引号都可以。
②如果键名不符合标识名的条件(比如第一个字符为数字,或者含有空格或运算符),也不是数字,则必须加上引号。
③JavaScript的保留字可以不加引号当作键名(为了ie兼容,不要用保留字)。
④如果键名是数字,则会默认转为对应的字符串。键名为数值,则会先转为标准形式的数值,然后再转为字符串。
1.2 属性
对象的每一个“键名”又称为“属性”(property),它的“键值”可以是任何数据类型。如果一个属性的值为函数,通常把这个属性称为“方法”,它可以像函数那样调用。
字符串不是变量,是常量。
1.2.1 读取属性
读取对象的属性,有两种方法,一种是使用点运算符,还有一种是使用方括号运算符。
varo={p:'Hello World'};
①o.p// "Hello World"
②o['p']// "Hello World
如果使用方括号运算符,键名必须放在引号里面,否则会被当作变量处理。但是,数字键可以不加引号,因为会被当作字符串处理。方括号运算符内部可以使用表达式。
数值键名不能使用点运算符(因为会被当成小数点),只能使用方括号运算符。
1.2.2检查变量是否声明
①如果变量没有声明,会报错。属性没声明,会返回undefined.
②全局变量都是window的属性。(不写var的变量时全局变量。)
全局变量检测object有没有a属性
①if (object.a===undefined){xxx};
②if('a' in object){xxx}; 不能用变量a,要用字符串a.
检测全局变量 对象删除1.3 JSON (javaScript object Notation) --标记法
用字符串表示标记法,json不能表示函数。
json对象:
①'{}'
②'{"name":1}'
json语法是js语法的子集。想传播有结构信息可以用json语法。
例:1、function
{a=function(){}} --不能当json
2、{'a':1} --不是合法的json语法(没用双引号)
遍历
2 数组 (有序的数据集)--是一种对象。
①var array=[ ]
②var array=new Array()
2.1 数组值
数组的值可以是任意值。可以是对象也可以不是对象。
2.2 length属性
数组的length属性,返回数组的成员数量.
数组与对象的区别:
①数组多了一个length属性。
②是有序的。
③key是0、1、2、3.....(字符串)。
遍历
数组调用方法:MDN
3 函数 --也是一种对象。(输入参数与输出参数的映射关系)
函数就是一段预先设置的代码块,可以反复调用,根据输入参数的不同,返回不同的值。
3.1 函数的声明
(1)function命令
function 函数名(输入参数,输入参数){console.log(输入参数,输入参数);}
(2)函数表达式
除了用function命令声明函数,还可以采用变量赋值的写法。
var print=function(输入参数,输入参数){console.log(输入参数,输入参数);}
(3)Function构造函数
还有第三种声明函数的方式:Function构造函数。
```
var add=new Function ('x','y','return (x + y)');
// 等同于
function add(x,y){return(x+y);}
```
在上面代码中,Function构造函数接受三个参数,除了最后一个参数是add函数的“函数体”,其他参数都是add函数的参数。如果只有一个参数,该参数就是函数体。
3.2声明的赋值
整体提升 部分提升函数赋值 函数的返回值
行参的作用:给实参起名字。
length是形参的个数。
网友评论