你不知道的JS系列 ( 29 ) - 对象属性

存储在对象容器内部的是这些属性的名称,它们就像指针(从技术角度来说是引用)一样,指向这些值真正的存储位置。

 

var myObject = {
  a: 2
}
myObject.a; // 2
myObject['a']; // 2

. 语法通常被称为‘属性访问’,[] 语法通常被称为‘键访问’。这两种语法的主要区别在于,. 操作符要求属性名满足标识符的命名规范,而 [] 语法可以接受任意 utf-8/Unicode 字符串作为属性名,比如说 ‘super-fun!’,就必须用 [] 访问,因为它不是一个有效的标识符属性名

 

var myObject = {};
myObject[true] = 'foo';
myObject[3] = 'bar';
myObject[myObject] = 'baz';

myObject['true']; // 'foo'
myObject['3']; // 'bar'
myObject['[object object]']; // 'baz'

在对象中,属性名永远都是字符串。如果你使用 string 以外的其他值作为属性名,那它首先会被转换为一个字符串

posted @ 2020-03-17 06:30  wzndkj  阅读(165)  评论(0编辑  收藏  举报