为什么我们需要使用一个“var”来定义许多变量?
Why do we need to use one `var` to define many variables?
我在Javascript中定义了一些变量:
var aaa = "aaa";
var bbb = "bbb";
var ccc = "ccc";
但是我的朋友说最好把它们定义为:
var aaa = "aaa",
bbb = "bbb",
ccc = "ccc";
因为JsLint会报告我代码中的错误。
我不知道为什么我们要把它作为第二个,因为我发现我的版本更好地查看如果值很大,像:
var aaa = {
some1 : 111,
some2 : 222
};
var bbb = {
some1 : 111,
some2 : 222
};
在JavaScript中没有块作用域,只有函数级作用域。因此,如果使用多个var
语句,来自其他语言的开发人员可能感觉不到区别。例如,
var numbers = [];
for (var i = 0; i < 10; i += 1) {
numbers.push(i);
}
如果您熟悉C、c++或JAVA,您可能会认为i
在for
循环之外不可用。由于第一行提到的原因,
因此,为了避免混淆,JSLint鼓励您在每个函数中只使用一个var
语句,并且这也应该是该函数的第一行。
引用jslint的文档,
在许多语言中,块引入了一个作用域。在块中引入的变量在块外部是不可见的。
在JavaScript中,块不引入作用域。只有函数作用域。在函数中任何地方引入的变量在函数中的任何地方都是可见的。JavaScript的代码块让经验丰富的程序员感到困惑,并导致错误,因为熟悉的语法做出了错误的承诺。
JSLint期望块中包含
function
、if
、switch
、while
、for
、do
和try
语句,而不是其他语句。在具有块作用域的语言中,通常建议在变量第一次使用的地方声明变量。但是因为JavaScript没有块作用域,所以在函数的顶部声明函数的所有变量是明智的。建议每个函数使用一个var语句。可以使用
vars
选项拒绝。
相关文章:
- 控制台返回var不是't定义,但它是
- 为什么JavaScript抛出'未捕获的ReferenceError:var未定义'定义var时
- Google Script var获取未定义的值
- 在 Javascript 中将 var 转换为自定义类
- 防止自定义文本出现在页面上的所有高图表上,←使用 {events:{load:function(){var.
- 不能在javascript中定义两个var
- 断言var集通过<输入ng模型>不是未定义的
- Javascript requestData未定义,尽管为JSON设置了var
- jQuery jslint-var是在定义之前使用的
- 使用 Javascript/JQuery 并在页面加载时获取未定义的 var
- 在 Select 脚本中调用 Knockout 计算 Var 时,如何定义它
- winJS 从函数未定义返回 var
- 为什么我需要将“var value = val;”更改为“this.value = val;”,这样我就不会收到“未定义
- 我们是否可以将定义为字符串的 var 传递给需要字符串的函数的参数
- JavaScript,jquery中未定义的VAR的问题.如何
- 自定义 Javascript 提示对话框(如何检索值并将其存储为 var)
- 火狐插件未定义的 var 来自框架
- 在 Meteor 包定义中使用 var 的方法
- 由“var”全局定义的变量是什么范围
- 从用var定义的函数中获取name