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]