我已经读过许多文章,甚至是SO问题,指出未在函数内部声明的javascript变量被视为全局变量。
内部函数“ no var”将查找作用域链,直到找到变量或命中全局作用域为止(此时将创建该变量):
这是为此的SO链接。
What is the purpose of the var keyword and when to use it (or omit it)?
但是当我考虑执行它时,它立即给我带来了错误。
function foo() {
// Variable not declared so should belong to global scope
notDeclaredInsideFunction = "Not declared inside function so treated as local scope";
// Working fine here
alert(notDeclaredInsideFunction);
}
// Giving error : notDeclaredInsideFunction is undefined
alert(notDeclaredInsideFunction);
因此,应该在全局范围内对待
notDeclaredInsideFunction
。但是为什么我收到错误消息,指出未定义notDeclaredInsideFunction
。可能是我缺少一些非常简单的东西。
最佳答案
函数已声明,但从未调用过,因此这就是它给出错误的原因。
尝试这个
function foo() {
notDeclaredInsideFunction = "Not declared inside function so treated as local scope";
alert(notDeclaredInsideFunction);
}
foo();
alert(notDeclaredInsideFunction);