js对象注意
var obj = {}; //定义一个对象 obj[1] = 1; //设置obj对象的属性为数字1属性,属性值为1 obj['1'] = 2398; //设置obj对象的属性为字符串1属性,属性值为2398 obj; // Object {1:2398} 这里的1变为2398,是因为将obj[1]中的数字1进行了字符串转化,将其变为字符串,所以会变成Object {1:2398}的输出结果 obj[{}] = true; // 这里设置obj对象的属性为对象{},属性值为true,这里只需要单纯的理解为属性设置,并且将对象{}转化为字符串(调用toString)作为key obj[{x:1}] = true;// 这里设置obj对象的属性为对象{x:1},属性值为true,这里只需要单纯的理解为属性设置,并且将对象{}转化为字符串(调用toString)作为key obj; // Object {1:2,[object Object]:true}
注意:这里的中括号运算符可以理解为js中的点运算符,但是不能替换,中括号运算符与点运算符的区别如下:
1.中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。
2.中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。
3.中括号运算符可以用纯数字为属性名。点运算符不能。
4.中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能。
/** * 在JavaScript里面 . 可以理解成 的 * 下面的例子中,a.b表示对象a的属性b,既可以设置也可以读取 * object[key]=>key为常量时,object[key]等价于object.key,例如:a.b == a['b'] * 特殊的,object[key]=>key为变量时,只能用中括号形式 */ var a = {}; // a.b = 1; a['b'] = 1; c = a.b; // c = a['b']; alert(c);
自定义变量规范:
var a='';//定义一个字符
var a=“”;//定义一个字符串
var a=5;//定义一个数字
var a={};//定义一个对象
var a=[];//定义一个数组
后续添加……