wwa*_*waw 5 javascript syntax if-statement boolean syntactic-sugar
两个相同吗?
假设你有:
var x = true;
Run Code Online (Sandbox Code Playgroud)
然后你有一个:
x && doSomething();
Run Code Online (Sandbox Code Playgroud)
要么
if(x) doSomething();
Run Code Online (Sandbox Code Playgroud)
这两种语法之间有什么不同吗?我偶然发现了一点糖吗?
严格地说,它们会产生相同的结果,但如果你使用前一种情况作为其他事物的条件,你将获得不同的结果.这是因为在这种情况下x && doSomething()
,doSomething()
将返回一个值来表示其成功.
不,他们并不完全相同.虽然if
是一个陈述,但AND
运算符是一个表达式.
这意味着您可以在其他表达式中使用其结果,而不能使用if语句:
var result = x && doSomething();
Run Code Online (Sandbox Code Playgroud)
然而,在你的情况下,两者都有相同的效果.使用更易读的,更好地代表您的程序结构; 我推荐if语句.