1

尽管不应该使用阴影(或只是为了混淆),因为它令人困惑,但我想完全理解它。我得到了这个奇怪的东西:

alert(parseInt('123'));//Here, I expected 123 but it's 'overshadowed'
function parseInt(){return 'overshadowed';}
alert(parseInt('123'));//Here it's 'overshadowed' too

为什么第一个alert输出“黯然失色”而功能尚未修改?

PS:我受到JavaScript 中的变量阴影的启发

4

1 回答 1

2

在 JavaScript 中,所有声明都隐式放置在作用域的开头(“hoisted”),因此 parseInt() 定义是在第二行、最后一行还是第一行并不重要。

于 2012-06-05T12:37:39.607 回答