逻辑“或”运算符 (||)
对两个表达式执行逻辑“或”。
result = expression1 || expression2
如果两个表达式中有一个或两个等于 True,则 result 是 True。(expression1 执行的结果不为null或undefined或0或空串时,则 result 等于 expression1 的返回值,而expression2 就不再执行了)
JScript 使用下面的规则来把非 Boolean 值转换为 Boolean 值:
1、所有对象都被认为是 true
2、字符串当且仅当为空时才被认为是 false
3、null 和 undefined 被认为是 false
4、数字当且仅当为 0 时才是 false
---------------------------------------------------------------
""是最简单的表达式,它不为空、null、undefined、0,因此表达式的值为真(非假)。
分析一下最常见的 if( a>1 || a<10 ){...} ,里面的 if 是怎样执行的呢?假使a等于5,小括号里的表达
式首先 a>1 满足条件,即返回true,至于是不是 a<10 就不在执行。a>1的返回值类型是布尔类型的,刚好满足 if 所
需的参数类型,因此条件语句继续往下执行。
再看:
var a=5;
if( a || b ){...}
小括号里的表达式首先执行 a,其返回值为整数5,即不是0也不是null与undefined,所以或运算表达式忽略了 b 返回 a 的值 5(不是
true也不是false,这点尤需注意),这时相当于 if(5){....},if在判断其参数的返回值类型时把参数值转换为布尔类型,根据规则(如
手册中云)把非布尔类型的值转换为布尔类型,5 的值即为true,因此 if 条件语句继续往下执行。
----------------------------------------------------------------------
再看看实际的应用:
function test(a1,a2){
var x = a2 || a1;
//var x = a2===undefined ? a1 : a2;
alert(x);
}
test("abc");
test("abc","def");
第一次执行 test 时只传了一个参数,因此在 test 内部获取的 a2 恒等于 undefined,即类型属于false,或运算将继续执行双
竖线右边的表达式 a1 ,a1的值为字符串"abc",不是false,因此或运算表达式返回 "abc" 并赋值给 x。
对于此类型的表达方法 a2 || a1 可以这样理解:优先取 a2, a1 排后。按这样的理解,看看下面的:
function test(a1,a2,a3,a4,a5){
var x = a5 || a4 || a3 || a2 || a1;
alert(x);
}
test("abc","def","ghi");
分享到:
相关推荐
5.9_逻辑运算符|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
逻辑或运算符||: 当运算符||的两个运算数都是布尔值,它对这两个运算数执行布尔OR操作。 它先计算第一个运算数,如果这个表达式的值可以被转换成true,那么它就返回左边这个表达式的值。否则计算第二个运算数 即使|...
5.10_成员运算符|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.11_身份运算符|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.13_位运算符|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.6_赋值运算符|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.7_比较运算符|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
js 与或运算符 || && 妙用,可用于精简代码,降低程序的可读性。
一句话区分运算符 | 和 ||,& 和 && ...| 按位或运算符,按二进制位进行”或”运算。运算规则:(有 1 则为 1) |是按位或:先判断条件1,不管条件1是否可以决定结果(这里决定结果为true),都会执行条件2 ||是逻辑或:
差一点的if,else: Js代码 代码如下: var add_level = 0; if(add_step == 5){ add_level = 1; } else if(add_step == 10){ add_level = 2; } else if(add_step == 12){ add_level = 3; } else if(add_step == 15){...
学习电子方面知识,C语言是非常主要的一门编程语言之一,如下简单总结下运算符。 逻辑运算符用来求某个条件式的逻辑值。... 逻辑非(NOT) 逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来。逻辑表......
5.5_运算符号|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
14.11_Python_3.8_新增海象运算符|Pythonic与Python杂记|Python3.8入门_&_进阶_&_原生
5.1_什么是变量|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.2_变量的命名规则|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.3_值类型与引用类型|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.8_不只是数字才能做比较运算|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.12_如何判断变量的值、身份与类型|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.4_列表的可变与元组的不可变|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读