2015-11-16 122 views
0

在函数中声明变量时是否需要添加if/else语句?我可以先设置变量,然后在满足条件时进行更改吗?声明一个变量,然后用if语句改变它?

function doSomething() { 
    var a = 1; 
    if(something) { 
    a = 2; 
    } 
} 

VS

function doSomething() { 
    var a; 
    if(something) { 
    a = 2; 
    } else { 
    a = 1; 
    } 
} 
+0

你尝试了吗? –

+2

翻转的问题:为什么*不会工作?所有的机器都是你告诉它的 - 当你尝试时发生了什么? –

+0

(不相关,但有一些人建议使用条件操作符(“三元”),但...... meh特别是在开始时,IMO简单的if语句就足够了) –

回答

2

不,这是没有必要的,只要在初始化评估第二值没有副作用(在你的情况,字面1,它具有无)。

但是,使用if-else可能会更好地表明您的意图并使代码更清晰;尽管这更多的是风格而不是功能。我个人甚至更喜欢条件表达式:

var a = condition ? 2 : 1; 
3

是的,你可以做到这一点(技术上)。关于理解或代码复杂性,尽可能简单。

我认为,如果你使用的条件运算符你的意图将更加明显:

var a = something ? 2 : 1; 
0

是的,你可以做到这一点 - 更短这样

var a = 1; 
if (something) a = 2; 
+0

除非你不应该忽略块大括号,当然! (如果你想写在一行上,写'if(something){a = 2;}'。) – cdhowie

+0

没有理由总是把一个块放在大括号中。除非在特殊情况下,否则我绝不会将该声明放在同一行上。 – blm

+0

@blm如果你*不*放在同一行上,你可能*应该*使用大括号,但是;可怜的缩进卫生和“但我的意思是说,在条件代码”是*都*太容易。特别适合初学者。 –