1、||(邏輯或)
只有前後都是false的時候才返回false,否則返回true。
alert(2||1);
//2
前面2是true,後面1也是true,結果是2,
?alert(
'a'
||1);
//'a'
前面'a'是true,後面1也是true;測試結果是'a',
?alert(
''
||1);
//1
前面」是false,後面1是true,而返回結果是1。
?alert(
'a'
||0);
//'a'
前面'a'是true,而後面0是false,返回結果是'a',
?alert(
''
||0);
//0
前面」是false,後面0同樣是false,返回結果是0
?alert(0||
''
);
//''
前面0是false,後面」是false,返回結果是」
結論:var
c=a()||b();
a() || b() :如果執行a()後返回true,則整個表示式返回a()的值,b()不執行;如果執行a()後返回false,則執行b()並返回b()的值;
只要「||」前面為false,不管「||」後面是true還是false,都返回「||」後面的值。
只要「||」前面為true,不管「||」後面是true還是false,都返回「||」前面的值。
2.&&(邏輯與)
只有前後都是true的時候才返回true,否則返回false。
alert(
''
&&1);
//''
結是返回」,「&&」前面」是false,後面是1是true。
?alert(
''
&&0);
//''
結是返回」,「&&」前面」是false,後面是0也是false。
?alert(
'a'
&&1);
//1
結是返回1,「&&」前面」a是true,後面是1也是true。
?alert(
'a'
&&0);
//0
結是返回0,「&&」前面」a是true,後面是0是false。
?alert(
'a'
&&
''
);
//''
結是返回」,「&&」前面」a是true,後面是」是false。
?alert(0&&
'a'
);
//0
結是返回0,「&&」前面」0是false,後面是'a'是true。
?alert(0&&
''
);
//0
結是返回0,「&&」前面」0是false,後面是」也是false。
var
c=a()&&b();
a() && b() :如果執行a()後返回true,則執行b()並返回b的值;如果執行a()後返回false,則整個表示式返回a()的值,b()不執行;
只要「&&」前面是false,無論「&&」後面是true還是false,結果都將返「&&」前面的值;
只要「&&」前面是true,無論「&&」後面是true還是false,結果都將返「&&」後面的值;
在js邏輯運算中,0、」「、null、false、undefined、nan都會判為false,其他都為true
&& 優先順序高於 ||
alert((1 && 3 || 0) && 4); //結果4 ①
alert(1 && 3 || 0 && 4); //結果3 ②
alert(0 && 3 || 1 && 4); //結果4 ③
分析:語句①:1&&3 返回3 => 3 || 0 返回 3 => 3&&4 返回 4
語句②:先執行1&&3 返回3,在執行0&&4返回0,最後執行結果比較 3||0 返回 3
語句③:先執行0&&3 返回0,在執行1&&4返回4,最後執行結果比較 0||4 返回 4
JS中 和 用法
和 在jquery源 內尤為使用廣泛,由於本人沒有系統的學習js,所以只能粗略的自我理解出來,希望大家指點下。粗略理解如下 a b 如果執行a 後返回true,則執行b 並返回b的值 如果執行a 後返回false,則整個表示式返回a 的值,b 不執行 a b 如果執行a 後返回true,則整個表示式...
JS中 和 用法
和 在jquery源 內尤為使用廣泛,由於本人沒有系統的學習js,所以只能粗略的自我理解出來,希望大家指點下。粗略理解如下 a b 如果執行a 後返回true,則執行b 並返回b的值 如果執行a 後返回false,則整個表示式返回a 的值,b 不執行 a b 如果執行a 後返回true,則整個表示式...
JS中 和 用法
和 在jquery源 內尤為使用廣泛,由於本人沒有系統的學習js,所以只能粗略的自我理解出來,希望大家指點下。粗略理解如下 a b 如果執行a 後返回true,則執行b 並返回b的值 如果執行a 後返回false,則整個表示式返回a 的值,b 不執行 a b 如果執行a 後返回true,則整個表示式...