Javascript--Boolean运算符
Boolean運算符有3種:
1.邏輯NOT
邏輯NOT由!表示.與邏輯OR和邏輯AND運算符不同的是:邏輯NOT運算符返回的一定是Boolean值.
邏輯NOT運算符的行為如下:
- 如果運算數(shù)是對象,返回false
- 如果運算數(shù)是0以外的其他任何數(shù)字,返回false
- 如果運算數(shù)是0,返回true
- 如果運算數(shù)是null,返回true
- 如果運算數(shù)是NaN,返回true
- 如果運算數(shù)是undefined,發(fā)生錯誤
- 對Boolean值求非,從而得到真正的Boolean值
例子:
function display(value){document.write(value+"<br/>");}display(!new Object()); display(!100);display(!0);display(!null);display(!NaN);display(!true);display(!false);//undefineddisplay(!ss);結(jié)果:
總結(jié):
- 如果運算數(shù)是0,null,NaN以及未定義的值,則求非之后,結(jié)果為true
- 如果運算數(shù)是0以外的任何數(shù)字或?qū)ο?則求非之后,結(jié)果為false
2.邏輯AND運算符
邏輯AND運算符由&&表示.邏輯AND是簡便運算,即:如果第一個運算數(shù)決定了結(jié)果,就不再計算第二個運算數(shù),對于邏輯與來說,如果第一個運算數(shù)是false,無論第二個運算數(shù)的值是什么,都不可能等于true.
下面采用真值的方式來描述:
| 第一個操作數(shù) | 第二個操作數(shù) | 結(jié)果 |
| true | true | true |
| true | false | false |
| false | true | false |
| false | false | false |
邏輯AND運算符的運算數(shù)可以是任何類型的,不止是Boolean值.如果某個運算數(shù)不是原始的Boolean值,邏輯AND并不一定返回Boolean值.
- 如果第一個運算數(shù)是對象,那么返回第二個運算數(shù)
- 如果某個運算數(shù)是null,則返回null
- 如果某個運算數(shù)是NaN,則返回NaN
- 如果某個運算數(shù)是undefined,則發(fā)生錯誤
例子:
function display(value){document.write(value+"<br/>");}var trueValue = true;var falseValue = false;var obj1 = new Object();obj1.name="obj1";var obj2 =new Object();obj2.name="obj2";var result;//如果第一個運算數(shù)是對象,另一個運算數(shù)是Boolean值,則返回Boolean值result = obj1 && trueValue;display(result); result = obj1 && falseValue;display(result); //如果第一個運算數(shù)是Boolean值,則會按照簡便運算方式運行result = trueValue && obj1;//obj1 && true;display(result.name);result = falseValue && obj1;display(result); display(trueValue && 'www')//如果兩個運算數(shù)都是對象,則返回第二個對象result = obj1 && obj2;display(result.name); //如果某個運算數(shù)是null,則返回nullresult = obj1 && null;display(result);//如果某個運算數(shù)是NaN,則返回NaNresult = obj1 && NaN;display(result);//如果某個運算數(shù)是undefined,則發(fā)生錯誤result = obj1 && ss;display(result);結(jié)果:
總結(jié):
- 當(dāng)變量為null,NaN以及未定義值的時候和false一樣,擁有否決權(quán),分別返回null,NaN,undefined.
- 當(dāng)運算數(shù)為對象時,都將通過運算.如果第一個運算數(shù)通過運算,那么將返回第二個運算數(shù).
- 當(dāng)運算數(shù)未被聲明時,引發(fā)錯誤.
3.邏輯OR運算符
邏輯OR運算符由||表示.邏輯OR運算符也是簡便運算,如果第一個運算數(shù)為true,則不再計算第二個運算數(shù).
下面采用真值的方式來描述:
| 第一個操作數(shù) | 第二個操作數(shù) | 結(jié)果 |
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
邏輯OR運算符的運算數(shù)可以是任何類型的,不止是Boolean值.如果某個運算數(shù)不是原始的Boolean值,邏輯OR并不一定返回Boolean值.
- 如果第一個運算數(shù)是對象,則返回該對象
- 如果第一個運算數(shù)為false,null,NaN,undefined,第二個運算數(shù)為null,則返回null
- 如果第一個運算數(shù)為false,null,NaN,undefined,第二個運算數(shù)為NaN,則返回NaN
- 如果第一個運算數(shù)為false,null,NaN,undefined,第二個運算數(shù)為undefined,則引發(fā)錯誤.
例子:
function display(value){document.write(value+"<br/>");}var trueValue = true;var falseValue = false;var obj1 = new Object();obj1.name="obj1";var obj2 =new Object();obj2.name="obj2";var result; //如果第一個運算數(shù)是對象,則返回該對象result = obj1 || trueValue;display(result.name); result = obj1 || falseValue;display(result.name); result = obj1 || obj2;display(result.name); //如果第一個運算數(shù)為false,null,NaN,undefined,第二個運算數(shù)為null,則返回nulldisplay(false || null);//如果第一個運算數(shù)為false,null,NaN,undefined,第二個運算數(shù)為NaN,則返回NaNdisplay(null || NaN);//如果第一個運算數(shù)為false,null,NaN,undefined,第二個運算數(shù)為undefined,則引發(fā)錯誤display(NaN || ss);display(ss || ss);結(jié)果:
轉(zhuǎn)載于:https://www.cnblogs.com/oneword/archive/2009/12/24/1631344.html
總結(jié)
以上是生活随笔為你收集整理的Javascript--Boolean运算符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 时间日期
- 下一篇: ListBox简单应用