我已经阅读了很多aritcles甚至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
未定义。
可能是我错过了一些非常简单的事情。
答案 0 :(得分:3)
声明了函数,但从未调用过,这就是它给出错误的原因。 试试这个
function foo() {
notDeclaredInsideFunction = "Not declared inside function so treated as local scope";
alert(notDeclaredInsideFunction);
}
foo();
alert(notDeclaredInsideFunction);