书上说这样会报错:
function test() {
var message = 'hi';
}
test();
alert(message);
这样确实报错了,把message换个别的名字也报错了,但是如果把message替换成name,如下,是可以执行 alert(name) 的,为什么?
na
function test() {
var name = 'hi';
}
test();
alert(name);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
alert(name)其实是alert(window.name)
恰好window有name属性。
因为name是winodw的属性,你打印出去window就知道。

你代码写错了,应该是name='zoe' 而不是var name='zoe',因为一个函数中,用var申明一个变量,这个变量的作用域就仅限于这个函数,而如果前面不加var,则默认为全局变量,所以不会报错