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=[];//定义一个数组
 
后续添加……
posted @ 2017-01-13 11:24  lxzltg  阅读(199)  评论(0编辑  收藏  举报