Dun*_*ill 5 javascript syntax ternary-operator
为什么要使用这种语法?
var myVar = myArray.length && myArray || myObject;
Run Code Online (Sandbox Code Playgroud)
代替
var myVar = myArray.length ? myArray : myObject;
Run Code Online (Sandbox Code Playgroud)
编辑:我只是想到如果在&& ||语法的情况下,||评估的两侧都为false,正如您可能期望的那样myObject,undefined或者null,如果为false则返回.但它不是,对象值undefined或null返回.
true || true //true
true || false //true
false || true //true
false || false //false
Run Code Online (Sandbox Code Playgroud)
EDIT2:
!!(myArray.length ? myArray : myObject);
Run Code Online (Sandbox Code Playgroud)
但是,如果myObject是undefined或,则返回falsenull
小智 4
x && y || z与在所x ? y : z呈现的案例中“有效”不同。
考虑何时y评估为假值(在评估y时不能是假值,因为它依赖于x因此它按预期“工作”)。
在这种情况下,使用?:是更好、更清晰的构造。我可以给出使用其他语法的唯一原因是“太聪明了”。
| 归档时间: |
|
| 查看次数: |
209 次 |
| 最近记录: |