Skip to content

06. name 的长度是多少

在浏览器里面运行下面代码,会打印出多少?

js
var name = [1, 2, 3]
console.log(name.length)
1
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