Appearance
06. name 的长度是多少
在浏览器里面运行下面代码,会打印出多少?
js
var name = [1, 2, 3]
console.log(name.length)
1
2
2
你可以试着复制到控制台执行,可能会超出你的预期,居然打印了 5
?!
解析:使用 var
在浏览器中定义的 name
变量,会和全局 window
下的自带属性 name
重复定义。也就是说,上面这段代码,尝试把 [1, 2, 3]
赋值给 window.name
,而 window.name
只接收字符串类型,所以会调用 [1, 2, 3].toString()
,返回 1,2,3
。
具体过程:
js
name = [1, 2, 3]
name = [1, 2, 3].toString()
name = '1,2,3'
name.length // 5
1
2
3
4
2
3
4