比如我定义一个json
var person = {name : '张三' ,
age : 12
}
那么可以有两种方式获取它的属性:
person.nameperson['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的关键字和保留字作为属性名。点运算符不能。