最近看前端面試題看到這個題目,還不知道怎么回事,結果自己在控制臺試了一下,加上看了網上別人的解釋,這里記錄說明如下:
1、先說說 || 的情況
看看以下幾種情況分別得到的結果:
1、alert(0||1),得到的結果是1;
2、alert(0||"a"),得到的結果是a;
3、alert(1||2),得到的結果是1;
4、alert(1||0),得到的結果是1;
5、alert(''||0),得到的結果是0;
6、alert(''||1),得到的結果是1;
7、alert('a'||0),得到的結果是a;
8、alert('a'||1),得到的結果是a;
||(邏輯或)一般來說是在符號前后的數據都為false的情況下才得到false,其余的情況都是true。
總結上面的規律可以發現:||符號前的數據若為false,則不管后面的數據是什么,alert(a||b)得到的結果都是b,即符號后面的值;若前面的值為true,則不管后面的值是什么,alert(a||b)得到的值都是a,即符號前面的值。
2、再看&&的情況
還是剛剛的幾個例子
看看以下幾種情況分別得到的結果:
1、alert(0&&1),得到的結果是0;
2、alert(0&&"a"),得到的結果是0;
3、alert(1&&2),得到的結果是2;
4、alert(1&&0),得到的結果是0;
5、alert(''&&0),得到的結果是'';
6、alert(''&&1),得到的結果是'';
7、alert('a'&&0),得到的結果是0;
8、alert('a'&&1),得到的結果是1;
&&(邏輯與)一般來說是在符號前后的數據都為true的情況下才得到true,其余的
情況都是false。
總結上面的規律可以發現:&&符號前的數據若為false,則不管后面的數據是什么,
alert(a&&b)得到的結果都是a,即符號前面的值;若前面的值為true,則不管后面的值
是什么,alert(a&&b)得到的值都是b,即符號后面的值。
邏輯運算符,||和&&都是遵行短路原則,只要確定了符號前面的真假,既可確定返回值。
這里需要說明的是&&的優先級是高于||的。
新聞熱點
疑難解答