js 逻辑运算,javascript算术运算符有哪些
本教程运行环境:windows7系统,javascript1.8.5版本1.8.5,戴尔G3电脑。
javascript中的逻辑运算符
逻辑运算符通常用于组合多个表达式。逻辑运算符的运算结果是一个布尔值,只能有两种结果,非真即假。下表列出了JavaScript中支持的逻辑运算符:
运算符示例逻辑and x y表示真,如果x和y都为真逻辑or x y表示真,如果x或y都为真!逻辑不是!X表示如果X不为真,则为真逻辑与运算。
AND运算()是一种AND布尔运算。仅当两个操作数都为真时返回真,否则返回假。详情见表。
第一个操作数和第二个操作数的逻辑“与”运算结果true true true false false false ruefalsefalsfalsefalse逻辑“与”是短路逻辑。左表达式为假,结果直接短路,右表达式不运算。操作逻辑如下:
第一步:计算第一个操作数的值(左表达式)。
第二步:检查第一个操作数的值。如果左边表达式的值可以转换为false(比如null,undefined,NaN,0,,false),那么运算结束,直接返回第一个操作数的值。
第三步:如果第一个操作数可以转换为true,则计算第二个操作数的值(右表达式)。
第四步:返回第二个操作数的值。
示例1
下面的代码使用逻辑AND运算来检测变量并初始化它们。
var用户;//定义变量
(!user console . log( no assignment );//返回提示信息“没有赋值”相当于:
var用户;//定义变量
如果(!用户){ //条件判断
Console.log(变量未赋值);
}如果变量user的值为0或者空字符串等false值被转换为布尔值,则为false。然后,变量赋值后,仍然提示变量未赋值。因此,在设计时,需要确保左边的逻辑和表达式的返回值是可预测的值。
var用户=0;//定义和初始化变量
(!User console.log(变量未赋值));//返回提示信息“变量未赋值”。右表达式不应包含赋值、递增、递减、函数调用等有效操作,因为当左表达式为false时,右表达式将被直接跳过,对后续操作有潜在影响。
逻辑或运算
OR运算是布尔OR运算。如果两个操作数都为真,或者其中一个为真,则返回真,否则返回假。如图所示。
或者第一操作数和第二操作数的逻辑运算结果。truetruetruetruefalstruefalsellogic OR也是短路逻辑的一种。左表达式为真,结果直接短路,右表达式不运算。操作逻辑如下:
第一步:计算第一个操作数的值(左表达式)。
第二步:检查第一个操作数的值。如果左边表达式的值可以转换为true,则运算结束,直接返回第一个操作数的值。
第三步:如果第一个操作数可以转换为false,则计算第二个操作数的值(右表达式)。
第四步:返回第二个操作数的值。
示例2
对于以下四个表达式:
var n=3;
(n==1)console . log(1);
(n==2)console . log(2);
(n==3)console . log(3);
( !n)console . log( null );你可以使用逻辑或结合逻辑:
var n=3;
(n==1) console.log(1)
(n==2) console.log(2)
(n==3) console.log(3)
( !n)console . log( null );因为运算符的优先级高于运算符,所以不需要使用括号进行分组。但是,用括号分组后,代码更容易阅读。
var n=3;
((n==1) console.log(1))
((n==2) console.log(2))
((n==3) console.log(3))
(( !n)console . log( null ) 逻辑AND和逻辑OR运算符有以下两个特征:
在逻辑运算的过程中,操作数暂时转换为布尔值,然后根据布尔值决定下一次运算,但操作数的类型和最终返回的结果不会受到影响。
由第一个操作数控制,第二个操作数可能不被执行。
逻辑非运算
逻辑非运算!是布尔否定运算(NOT)。作为一元运算符,它直接放在操作数之前,将操作数的值转换为布尔值,然后对其求反并返回。
示例3
下面是一些特殊操作数的逻辑非运算返回值。
console.log(!{} );//如果操作数是对象,则返回false
console.log(!0 );//如果操作数为0,则返回true
console.log(!(n=5));//如果操作数是非零的任何数字,则返回false
console.log(!null);//如果操作数为空,则返回true
console.log(!南);//如果操作数是NaN,则返回true
console.log(!无穷大);//如果操作数是无穷大,则返回false
console.log(!(-无穷大));//如果操作数是-Infinity,则返回false
console.log(!未定义);//如果操作数未定义,则返回true示例4
如果对操作数执行两次逻辑“非”运算,则相当于将操作数转换为布尔值。
console.log(!0 );//返回true
console.log(!0 );//Return false逻辑AND和逻辑OR运算的返回值不一定是布尔值,但是逻辑NOT运算的返回值一定是布尔值。
【推荐学习:javascript高级教程】以上是javascript的逻辑运算符的详细介绍。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。