繁体   English   中英

Javascript变量是否在被视为全局的函数内声明(无变量)?

[英]Are Javascript variables not declared (no var) inside functions treated as global?

我已经阅读了许多aritcles甚至SO问题,声明未在函数内声明的javascript变量被视为全局。 函数内部的“no var”将查找范围链,直到找到变量或命中全局范围(此时它将创建它):

这是一个SO链接。

var关键字的用途是什么以及何时使用它(或省略它)?

但是当我想要执行它时,它立即给了我错误。

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM