在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
上面的兩種情況,是對!后面的值轉換為布爾值之后在取反,返回的值,返回類型就是布爾型