码
function hi() {
myvar = 'local variable';
}
console.log(myvar);
Run Code Online (Sandbox Code Playgroud)
输出:ReferenceError:未定义myvar
根据我的理解,javascript逐行,检查变量及其范围.记住这一点不应该是以下打印'undefined',因为myvar存在于全局范围内?
不,它不应该,因为它打印undefined你需要首先在全局范围内定义它.
在函数本身执行之前,在函数内部为该变量赋值的事实并不意味着什么.
var myvar;
function hi() {
myvar = 'local variable';
}
console.log(myvar);Run Code Online (Sandbox Code Playgroud)
如果在var myvar;执行hi之前省略该行并执行函数console.log,则会得到"local variable"结果,因为该函数会创建隐式全局绑定.
要检查这一点,只需使用strict mode,您将得到错误而不是上面的结果,因为严格模式会阻止隐式全局变量.
"use strict";
function hi() {
myvar = 'local variable';
}
hi();
console.log(myvar);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |