0
点赞
收藏
分享

微信扫一扫

JavaScript的“或”运算的高级用法

“或”运算符的高级用法:

利用“或”运算符取得操作数的值:

result = value1 || value2 || value3;

在上面这样的情况下,“或”运算符是这样执行的:

l  从左到右依次计算操作数。

l  处理每一个操作数时,都将其转化为布尔值。如果结果是 true,就停止计算,返回这个操作数的初始值。

l  如果所有的操作数都被计算过(也就是,转换结果都是 false),则返回最后一个操作数。

返回的值是操作数的初始形式,不会做布尔转换。

也就是,一个或 "||" 运算的链,将返回第一个真值,如果不存在真值,就返回该链的最后一个值。

例子1:

alert( 1 || 0 ); // 1(1 是真值)

alert( true || 'abc' ); //(true 是真值)

alert( null || 1 ); // 1(1 是第一个真值)

alert( null || 0 || 1 ); // 1(第一个真值)

alert( undefined || null || 0 ); // 0(所有的转化结果都是 false,返回最后一个值)

例子2:通过“或”运算符获取表达式的第一个为真的值

let vara = null;

let varb = "John";

let varc = undefined;

let name = vara || varb || "unnamed"||varc;

alert( name ); // 选出了 “John” — 第一个真值

结果:

JavaScript的“或”运算的高级用法_取值

例子3:或运算的取值方式是短路取值,即从左向右进行运算,当出现第一个为真的值的时候,会立即停止运算并返回结果。

let x;

true || (x = 1);

alert(x);

 

let y;

false || (y = 1);

alert(y);

结果是:

JavaScript的“或”运算的高级用法_运算符_02

JavaScript的“或”运算的高级用法_操作数_03


 

举报

相关推荐

0 条评论