首页 > 编程知识 正文

逻辑运算符中优先级,逻辑运算符有优先级吗

时间:2023-05-03 18:07:28 阅读:227325 作者:4955

常见的比较运算符有:&& , | | ,>,<,>=,<=,!=,==,===

逻辑运算符返回的结果一般是Boolean值

> < , >=,< = var a,b,c;a=1;b=2;c=a>b;

c返回的是false

当对字符串比较的时候,会比较字符串的ASCII码,如果字符串比较长就会先比较第一位,如果相同,然后比较第二位的。

console.log('ab' < 'ba');//true

 

当字符串与数字进行比较的时候,会先将字符串按照Number的方法转换成数字再进行比较。如果转换成NaN则永远是false

// 无法转换成数字,为NaN console.log('22abc' < 11);//false console.log('22abc' > 11);//false // 可以转换成数字 console.log('22' > 11);//true

==,的比较,先转换数据类型为同一种再进行比较。如字符串与数值比较就会先将字符串传换成数字。引用类型的数据比较的是内存地址。

// == console.log('123' == 123);// true console.log('123abc' == 123);// false console.log(123 == 123);// true console.log('==========='); // 关键字 console.log(undefined == 'undefined');//false console.log(null == 'null');//false console.log(NaN == NaN);//false console.log(undefined == undefined);//true console.log(null == null);// true console.log(NaN == NaN);// false

这里需要注意的是NaN,它不等于任何东西,甚至是自己与自己相比也是不相等。

===,会先进行类型的比较,如果不是同一类型就直接返回false

console.log(123 === 123);// true console.log(123 === '123');// false console.log(123 === 'abc');// false console.log(null === null);// true console.log(undefined === undefined);// true console.log(NaN === NaN); // false console.log({ name: '冷傲的丝袜' } === { name: '冷傲的丝袜' });//false 逻辑运算符:&&,|| ,!

逻辑运算符也是返回一个结果,但是一定是Boolean类型的值。

在进行逻辑运算时系统会默认把undefined ,null,NaN,“”,0,false  当成false

1、&& 表达式两个都表达式,会首先看第一个表达式换成Boolean值得结果,如果第一个转换成true,那么就会直接返回第二个表达式(或者说执行),如果是false,就直接返回第一个表达式(执行)。

console.log( 1-1 && 1+2);// 0 console.log( 1 && 1+2);// 3 console.log( null && true);// null

 如果遇到多个&符号,他就会逐个判断,只要遇到值为false的就停下返回这个表达式。

2、|| 符号

与&&是相反的,他会向后查询Boolean值为true的表达式或值,如果找到true的就直接返回,如果没有找到就返回最后一个。

console.log( null || false || 1+1 || 0);// 2

|| 一般用做兼容性,判断浏览器是否支持当前的额对象或者函数。

3、! 把表达式变成boolean的值。

console.log(!1);// false 运算的优先级

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。