我在 Chrome 上的控制台上测试了一些东西,然后我运行了这段代码:
alert() | window.confirm();
alert() || window.confirm();Run Code Online (Sandbox Code Playgroud)
我的问题是在一行中同时运行 alert 和 confirm 方法而不使用分号。事实证明,两者 | 和 || 有效,我无法想象它为什么有效,首先是因为|| 表示一个 OR 运算符,它应该运行其中一个,而不是两者,其次| 我不知道它是什么。有人可以解释发生了什么,还有什么应该起作用而不是; ?
分号表示语句的结束。
如果您还不知道,表达式就是计算结果的值。例如,5、'foobar'和myFn()都是表达式,因为它们计算结果为值。
语句可以由多个表达式组成。例如,const result = fn('foo')将'foo'表达式传递给函数调用,函数调用返回一个值并赋给result。
在您的代码中,两行都由两个表达式组成,但每一行恰好是一个语句。有了这一行:
alert() || window.confirm()
Run Code Online (Sandbox Code Playgroud)
会先评价alert。由于alert返回undefined,||因此该运算符会计算右侧的表达式,即window.confirm()。
您可以使用|、||或 等运算符将多个表达式放在同一个表达式上=。您还可以通过将每个表达式作为单独的语句来计算多个表达式,例如
alert();
window.confirm();
Run Code Online (Sandbox Code Playgroud)
两者都会出现一个警告框和一个确认对话框。
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |