阴影的奇怪行为

时间:2012-06-05 12:32:10

标签: javascript shadowing

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

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

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

P.S:我受Variable shadowing in JavaScript

的启发

1 个答案:

答案 0 :(得分:2)

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