手机版

js中| |和运算符的详细说明

时间:2021-08-31 来源:互联网 编辑:宝哥软件园 浏览:

js中的逻辑运算符可以看作是开发中比较常见的运算符,主要有三种:逻辑and、逻辑OR | |和逻辑NOT!

当用| |连接语句时,两边的语句将被转换为布尔类型,然后被操作。具体操作规则如下:

1.

1.1当两个条件都为真时,结果为真;1.2一为假,结果为假;1.3当第一个条件为假时,将不再判断后一个条件

注意:当值参与逻辑与运算时,结果为真,则返回第二个真值;如果结果为假,则返回第一个假的值。

2.||

2.1只要一个条件为真,结果为真;2.2当两个条件都为假时,结果为假;2.3当一个条件为真时,不再判断以下条件

注意:数值参与逻辑OR运算时,结果为真,返回第一个真值;如果结果为假,将返回第二个假值;

3.

3.1条件为假时,结果为真;反之亦然。

代码描述:

!DOCTYPE html html lang=' en ' head meta charset=' UTF-8 ' title demo/title script console . log(5 4);//当结果为真时,返回第二个真值4 console . log(0 4);//当结果为false时,返回第一个false值0 console . log(5 | | 4);//当结果为真时,返回第一个真值5 console . log(0 | | 0);//当结果为false时,返回第二个false值0 console . log((3 | | 2)(5 | | 0));//5 console.log(!5);//false/script/head body/body/html补充:逻辑and的优先级高于逻辑or;

例如,console.log(3||25||0)将首先将25的值计算为5,然后是3 | | 5-3,最后是3 | | 0-3,因此最终结果是3。

补充

表达式A表达式b :计算表达式A的运算结果(也可以是函数)。如果为真,执行表达式B(或函数),返回B的结果;如果为False,则返回的结果;

表达式a ||表达式b :计算表达式A(或函数)的运算结果。如果是Fasle,执行表达式B(或函数),返回B的结果;如果为真,则返回的结果;

转换规则:

对象为真;非零数字为真;

零为假;

真;对于非空字符串;空字符串是方法false其他都是假的;

示例:var a=obj | |//如果obj为空,则将a分配为“”;var a=check()do();//如果check()返回true,则执行do()并将结果赋给;

其他网友补充

今天复习js继承的时候,发现了一个问题,所以先开始代码

脚本类型=' text/JavaScript ' window . onload=function(){ var mama,mama1,test=function(name){ debugger;this.name=name | | ' mama};调试器;mama=新测试();mama1=新测试(' mama 1 ');alert(mama . name);//name=mama alert(mama 1 . name);//name=mama1} /script执行构造函数时,无参数构造函数返回的名称为‘mama’,有参数时,实例的名称为参数值。这时,我有点困惑。为什么逻辑运算符| |可以这样使用?因为我是C#出身,这样用js ||感觉很奇怪。如果你不知道该做什么,你会通过实验知道。

风险值b、c、d;b=true | | 0;//b=真;c=false | | 0;//c=0;d=1 | | 0;//d=1;其他的呢?

风险值b、c、d;b=1-1 | | 1 1;//b=2 c=function(){ return undefined } | | function(){ return 1 };//c=函数();d=c();//d=undefinedvar b,c,d;b=1-1 | | 1 1;//b=2 c=function(){ return 1 } | | function(){ return undefined };//c=函数();d=c();//d=1b={} || { a: 1,geta : function(){ return this . a } };//b=对象

风险值b、c、d;b={ a: 1,geta : function(){ return this . a } } | | { };//b=对象c=b . GetA();//c=1;通过这些实验,我们可以看到,JS的| |并不像C#中的| |那样简单地返回一个布尔类型。大家都知道js的布尔类型判断是对象为真,非零为真,非空字符串为真,其余为假

获得逻辑or | |: var a=表达式1 ||表达式2

表达式1表达式2a值1 0表达式1结果值1 1表达式1结果值0 1表达式2结果值0 0表达式2结果值

逻辑与:变量a=表达式1表达式2

表达式1表达式2a取值

1 0表达式2结果值1 1表达式2结果值0 1表达式1结果值0 0表达式1

主要原因是因为短路,逻辑还是| |前面有真的时候,它会直接停下来不看后面,逻辑和这个道理一样。然后像往常一样计算作业,得到最新的计算结果。

例如

b=(1 1,2 2,3 3);//b=6;当然这只是猜测。以上仅供参考。孟新一号,我希望你能轻易批准。

版权声明:js中| |和运算符的详细说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。