js对象的属性问题

ES6之前js的对象的属性只能是字符串,

<html>
<head>
<script type="text/javascript">
    var a = {1:2}
    for(let i in a ) {
        console.log(typeof i)
    }
</script>
</head>
<body>
    

</body>
</html>

虽然在浏览器打印a的时候我们看到的1,但是这里打印i的type出来是string。ES6的symbol是可以支持多种类型的属性。

当我们访问这种属性的时候不能通过obj.att来访问,我们要使用obj[‘att’]来访问,例子如下

<html>
<head>
<script type="text/javascript">
    var a = {1:2}
    var b = {'1层': '1层'}
    console.log(a[1])
    console.log(b['1层'])
</script>
</head>
<body>
    

</body>
</html>

打印出来2和1层。当只有数字作为属性的时候可以省去[]内的单引号'',obj[num]

posted @ 2017-10-31 14:04  清风·流云  阅读(252)  评论(0编辑  收藏  举报