js中 中括号和.的区别

JavaScript011

js中 中括号和.的区别,第1张

比如我定义一个json

var person = {

    name : '张三' ,

    age : 12

}

那么可以有两种方式获取它的属性:

person.name

person['name']

以上两种方式都可以获取他的name属性。用中括号的方式比较灵活,可以动态传入属性的key,因为是字符串嘛。可是如果你用 . 的方式, 就必须要明确key是什么。

如:

<script type="text/javascript">

  var author = book.author //得到book的"author"属性

  var name = author.subname //得到author的"surname"属性

  var title = book["main title"] //得到book的"main title"属性</script>

区别: 

1.中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。

2.中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。 

(即:点号后加标识符(静态的); 

中括号可放字符串,字符串可以是动态的,obj[‘string’+variable])

3.中括号运算符可以用纯数字为属性名。点运算符不能。

4.中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能。