我有一个关于||的问题javascript中的运算符。根据我的理解,它可以用作'OR'运算符或null合并运算符。
我的问题是,我可以将if语句与||结合使用吗? null合并运算符?例如,
if (x=y){
alert("Yup");
}||if (x=0){
alert("Nope);
}
提前致谢。
答案 0 :(得分:4)
没有。只需使用else
JavaScript语法区分
之类的语句if (condition) statement else statement
和
之类的表达式expr || expr
语句可以包含通过ExpressionStatement
生成限制°的表达式,但表达式只能以非常有限的方式包含语句°°。 / p>
所以
{statement} || {statement}
既不是有效语句也不是有效表达式,因为JavaScript解析器看到||
它希望语句出现并报告解析错误。
其次,||
并非真正“空合并”。要了解原因,请考虑
alert(false || null) // alerts "null" not "false"
alert(0 || null) // alerts "null" not "0"
alert("" || null) // alerts "null" not the empty string
alert((0/0) || null) // alerts "null" not "NaN"
由于||
的左侧是falsey,null
被赋予了首选项,如果只合并了空值,那么这不是您所期望的。
° - { key: value }
对象构造函数与块不明确,并且命名函数表达式与函数声明不明确,因此除非有括号,否则它们都被禁止。
° - 像function () { ... }
这样的函数表达式可以在其正文中包含语句。