没有定义变量的类型(自动全局变量)

时间:2015-08-21 16:44:35

标签: javascript angularjs

我最近遇到了这个http://www.w3schools.com/js/js_scope.asp,我在那里学到了“自动全局变量”。以下是您使用它的方式:

// code here can use carName

function myFunction() {
    carName = "Volvo";

        // code here can use carName
}

然而,它有多高?我担心其他文件可以访问它,如果它是全局的。如果我使用AngularJS,其他控制器可以使用它吗?其他文件可以使用吗?

1 个答案:

答案 0 :(得分:0)

在JavaScript中,创建不带var的变量与将全局对象设置为属性相同(在浏览器中,globalwindow

nameWithoutVar = 1;
// the above is the same as
window.nameWithoutVar = 1;

这意味着页面浏览器中加载的任何其他脚本都可以访问nameWithoutVar,与访问locationdocument等相同。

出于这个原因,全局变量被认为是一个非常糟糕的主意,因为所有使用相同的命名空间。如果必须使用全局变量,请务必记录它,并尝试命名它,以便它不会与任何其他变量冲突。

如果你不确定,你可能不需要。