gpt4 book ai didi

javascript - var 关键字和 javascript 函数的作用域

转载 作者:行者123 更新时间:2023-11-29 17:26:21 29 4
gpt4 key购买 nike

我想找到最简单的方法来确定变量的范围。

看下一个例子(jsfiddle):

var foo = function() {
var bar = function() {
pub = "public";
var pri = "private";

alert(pub) // public
alert(pri) // private
};

// alert(pub) // pub not defined
bar();
alert(pub) // public
// alert(pri) // pri not defined
};

foo();
alert(pub) // public
// alert(pri) // pri not defined

我可以这样说吗:

1.- 所有以 var 关键字为前缀的变量都将在其函数及其所有嵌套函数中可见?
2.- 所有没有 var 关键字的变量在(他的函数容器)执行后到处可见?

最佳答案

  1. 这是真的,除非它们被同一变量的另一个内部定义所掩盖。
  2. 所有不带 var 的变量都是全局变量,除非它们已经被外部作用域定义。

自从人们提到全局...

你不应该使用全局变量,总是用 var 声明你的变量以避免混淆。如果您必须使用它们,请将它们的范围限定为用于您的代码的全局命名空间。这将帮助您避免与页面上的其他代码发生冲突。

var ns = {};
// Now use this anywhere in your code
ns.myGlobal = 49;

关于javascript - var 关键字和 javascript 函数的作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8480109/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com