if语句vs函数语句

if statement vs function statement

本文关键字:语句 函数 vs if      更新时间:2023-09-26

函数语句可以使用以下运算符转换为表达式:

+function(){ //it is now function expression 
...
}();

但是为什么if语句不能转换为表达式呢?

+if(true){ //cause an error
....
}

您没有将函数转换为表达式。您正在计算函数(后面带有()),其结果可以在表达式中使用。如果你想在代码中内联一些"如果喜欢"的东西,可以使用三元运算符:

var a = b + (x > y ? c : d);

这相当于您似乎感兴趣的伪代码:

// Of course the below isn't actually legal...
var a = b + if (x > y) {
    c;
} else {
    d;
}

JavaScript中并没有真正的"函数语句"。函数定义是返回函数的表达式,而不是与"if语句"意义相同的语句。

在函数上使用一元加正确返回NaN:

+function () { return "1"; }
NaN

(但是,如果您调用函数,如您的示例所示,则返回值将用于您的表达式:

+function () { return "1"; }()
1

)