sha*_*gon 3 javascript ternary-operator logical-operators
我有一个旧脚本。这是其中的一部分:
var e = e ? e : event;
Run Code Online (Sandbox Code Playgroud)
因此,这里没有错。但是我主要使用三元来表示。可以这样安全地重写吗
var e = e || event;
Run Code Online (Sandbox Code Playgroud)
有没有隐藏原因不使用这个?
在您的示例中,e如果它不是伪造的值,则将使用false, 0, "", null, undefined。否则event将被使用。就您而言,应该保存。
但是,使用更复杂的逻辑表达式代替if-then-else(或三元)会存在一些危险。这是一个例子:
result = value > 10 && getA() || getB()
Run Code Online (Sandbox Code Playgroud)
如果后卫 value > 10评估为trueAND并getA()返回假值,getB()则将返回。这与if-then-else行为不同,后者会返回的虚假结果getA()。
| 归档时间: |
|
| 查看次数: |
933 次 |
| 最近记录: |