在 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
上面的两种情况, 是对! 后面的值转换为布尔值之后在取反, 返回的值, 返回类型就是布尔型
来源: http://www.bubuko.com/infodetail-3109286.html