看到这段代码应该有人会产生疑惑,诶我不是已经给name赋值为undefined了吗,怎么它最后变成了字符串的undefined了?
- 这个是因为在javascript中,若省略var关键字而直接赋值,那么这个变量为全局变量,哪怕是在function里定义的。
- 如果不是在函数里面使用var定义变量,那么这个变量也将变成全局变量。
- 那么在浏览器中全局变量将挂载载顶层对像window上,而根据MDN的官方描述:
window.name
会调用toString
将赋给它的值转换成对应的字符串表示。
看到这段代码应该有人会产生疑惑,诶我不是已经给name赋值为undefined了吗,怎么它最后变成了字符串的undefined了?
window.name
会调用 toString
将赋给它的值转换成对应的字符串表示。