在Javascript中分配多个值之前先声明var
Declare var before assigning multiple values in Javascript?
在Javascript中,var
声明的哪种格式更好:
function test1() {
switch(type) {
case 1:
var test = "Hello One"
break;
case 2:
var test = "Hello Two"
break;
}
}
或者:
function test2() {
var test;
switch(type) {
case 1:
test = "Hello One"
break;
case 2:
test = "Hello Two"
break;
}
}
在test2()中,在赋值之前,有一行额外的代码可以将test
声明为var
,但这可以节省两次声明var test
的时间。哪种方式比另一种好?
javascript没有块作用域,因此在开关块中声明变量不会像您预期的那样工作。
此外,由于变量提升,函数块中的所有变量声明都被解释器提升到顶部,您的代码将如下所示:
function test1() {
var test;
var test;
switch(type) {
case 1:
test = "Hello One"
break;
case 2:
test = "Hello Two"
break;
}
}
执行提升后,很容易看出第一个块不正确的原因。
IMO应首选第二种。
它更具沟通性,更接近实际发生的事情(例如,可变吊装)。
我也不喜欢将变量声明隐藏在看起来类似的范围内,但不是。
您的第一个代码是错误的;您已经多次声明同一个变量。
JSHint会抱怨它。
相关文章:
- 一个'var'在函数内部声明
- 在for循环中声明i时使用var
- 什么's;var'声明的变量和'这'在Javascript中创建了属性
- 为什么VaR声明比让快
- 多次声明var而不是使用.find
- 为什么我的变量需要一个'var'声明,当它's已经在var声明中了
- Javascript变量声明:什么是“;var myVariable={}”;
- Node.js上VAR的声明
- 具有多个逗号分隔值的变量声明是什么意思(例如 var a = b,c,d;)
- 如何在此 var 声明中获取此数组的第一个元素
- 如何在使用 javascript 声明 var 之前检查元素有或没有
- 在 Javascript 中声明 var 用于循环声明
- 在Javascript中分配多个值之前先声明var
- Javascript:为什么我需要在for循环中声明var I=0
- 在jquery.live()中声明var,它可以在所有函数中使用
- 声明var that = this的原因是什么?在javascript
- 提升未声明'var'的JS变量
- 为什么没有在object方法中声明var的变量不会成为全局变量
- 在unray表达式中声明var
- 重新声明var console