JS中的与或非
在js中经常用到的判断条件 与(&&) 或(||) 非(!)
与运算
一个为假就为假,全真则为真,遇假则停
var a=1&&2&&3; document.write(a);
这种情况 输出a的结果是3。
当执行&&运算时 ,如果前面的都为true,就会继续向后执行,直到出现为false的结果或者到最后一个,比如:
var a=1&&0&&3; document.write(a);
当前a的值为0
也就是说,如果条件中出现为false的情况,就不会继续向后执行,并返回当前值
在这里说一下返回值为false的6个值:undefined,NaN,“”(空字符串),null,0,false
短路语句
用&&的特性来实现,举例:
条件 && document.write(a);
如果&&前面的值为false,那么后面的就不会在执行,相当于短路,可以用在数据值的检测,&&前面填写数据或变量,后面是用到该值或变量的语句,如果为false,后面的语句就不会执行
或运算
一个为真就为真,全假则为假,遇真则停
var a=1||0||3;
document.write(a);
当前输出结果为1,相比与运算,这里刚好相反
如果第一个值为true,就返回当前值,并且不再执行后面的语句
如果是这样:
var a=''||0||2;
document.write(a);
当前条件返回的a的值是2
也就是说,只要条件为false,就会向后执行,直到条件为true,停止向后执行,并返回当前值,如果最后一个值也是false,就会返回最后一个值
||可以在代码编写过程中,用于实现不同浏览器兼容性的语句
非
也就是否的意思,举个例子
var a=!'';
document.write(a);
当前返回值为true
var a=!123;
document.write(a);
当前返回值为false
上面的两种情况,是对!后面的值转换为布尔值之后在取反,返回的值,返回类型就是布尔型
╰︶﹉⋛⋋⊱⋋๑๑⋌⊰⋌⋚﹉︶╯