所以我在玩 JavaScript 并遇到了我认为很奇怪的事情。有没有人能够解释以下内容?(我已将警报值包含在评论中)
为什么 foo() 内部的第一个 alert(msg) 返回undefined而不是外部?
var msg = 'outside';
function foo() {
alert(msg); // undefined
var msg = 'inside';
alert(msg); // inside
}
foo();
alert(msg); // outside
考虑到这些都可以正常工作:
var msg = 'outside';
function foo() {
alert(msg); // outside
}
alert(msg); // outside
和:
var msg = 'outside';
function foo() {
var msg = 'inside';
alert(msg); // inside
}
alert(msg); // outside