1、JS中的||符號:
運算方法:
只要“||”前面為false,不管“||”后面是true還是false,都返回“||”后面的值。
只要“||”前面為true,不管“||”后面是true還是false,都返回“||”前面的值。
總結:真前假后;
2、JS中的&&符號:
運算方法:
只要“&&”前面是false,無論“&&”后面是true還是false,結果都將返“&&”前面的值;
只要“&&”前面是true,無論“&&”后面是true還是false,結果都將返“&&”后面的值;
總結:假前真后;
總之:誰重要就返回誰;&& 優先級高於 ||
1 alert((1&&3||0)&&4); 2 alert(1&&3||0&&4); 3 alert(0&&3||1&&4);
看到第一行:
1&&3 :對於&& 如果前面的是真的,它還需要知道后面的值是否是真的,所以當前面為真了,那么后面的值決定了它的真假,所以 前面真了,就返回后面的值;所以 1&&3 結果是3
3||0,對於|| ,如果前面的值是真,那么后面的值是否是真、假不重要,所以返回前面的值,因為他才是重要的;所以 3||0 結果是 3
3 &&4 同理 3&&4 返回4;
綜上:第一行的數據返回結果是 4;
第二行:
1&&3 前面是真,重要的是后面的值,返回3;
0&&4 前面為假了,那么對於&&而言 后面是什么都不重要,因為都是假的,所以返回0;
3&&0 同理,返回3;
綜上:第二行的數據返回結果是 3;
第三行:
0&&3,返回0,&&運算而言 前面已經是假了,就返回了,即0;
1&&4,返回4,&&前面是真,還得看看后面的值,后面的值重要,因為他決定了 真假;
0||4,對應 || 前面是假了,后面的值就很重要了,后面的值決定了該條語句的真假,所以返回4;
綜上:第三行數據返回4;
弄懂了以上說的還應該知道:
js的6個蛋蛋:在js邏輯運算中,0、”“、null、false、undefined、NaN都會判為false,其他都為true。
其實 II && 常用來判斷當前獲取的值是否“有效”;比如表單驗證,
比如:
<form> <input type="text" name="username" id="username"> <input type="password" name="password" id="password"> </form>
var username = $("#username").val() var password = $("$password").val() if(!!username ){ alert("請輸入用戶名") } if(!!password ){ alert("請輸入密碼") }
但是大多數時候除了需要知道值的真假,還要賦值;如果是假,則賦值;所以 || 和&&特別重要。
var a = x || 0;
var b = parseInt(a);
在這種情況下,運算符就起到了特別大的作用,x=undefined,如果直接parseInt(x),就報錯了。。。。