3 回答
TA贡献1827条经验 获得超8个赞
分号表示语句的结束。
如果您还不知道,表达式就是计算出一个值的东西。例如,5
、'foobar'
和myFn()
都是表达式,因为它们的计算结果为值。
语句可以由多个表达式组成。例如,const result = fn('foo')
将'foo'
表达式传递给函数调用,函数调用返回一个赋给 的值result
。
在您的代码中,这两行都由两个表达式组成,但每一行恰好是一个语句。用这条线:
alert() || window.confirm()
会先评价alert
。由于alert
返回undefined
,||
运算符随后计算右侧的表达式,即window.confirm()
。
|
您可以使用、||
或 等运算符将多个表达式组合在一起=
。您还可以通过将每个表达式作为单独的语句来评估多个表达式,例如
alert(); window.confirm();
两者都会导致出现警告框和确认对话框。
TA贡献1775条经验 获得超11个赞
alert()
返回undefined
,这是错误的。因此,window.confirm()
仍然会运行,以你的例子为例||
。
至于单个管道字符|
,这是按位或,您可以在此处阅读: https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Bitwise
TA贡献1890条经验 获得超9个赞
The||
是一个运算符,例如+
or /
;它计算了一些东西。在 的情况下||
,它计算一个或另一个值是否为真。
通常,您会在声明之类的地方使用它if
:if (i===0 || j===0) {...}
但不限于此;例如,您可以将结果放在一个变量中,然后在if
稍后的语句中使用它:have_zero = i===0 || j===0; ...; if (have_zero) {...}
||
(and ) 运算符&&
确实有一件特殊的事情:如果左侧确定答案,则它们不会费心计算右侧(称为“短路评估”)。
在这里,你正在计算alert() || window.confirm()
,所以它调用alert()
;正如其他人所指出的,这返回undefined
which 并不能确定 的答案||
,因此 Javascript 然后调用window.confirm()
. 然后答案被丢弃,因为您没有将它放在变量中或以其他方式使用它,但这没关系 - 您想要调用这些方法,您对答案不感兴趣。
添加回答
举报