常见的比较运算符有:&& , | | ,>,<,>=,<=,!=,==,===
逻辑运算符返回的结果一般是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 运算的优先级