caoporm97国产在线视频|欧美性XXXXX精品|一本一道久久a久久精品综合开|精品久久久久久久久久久AⅤ|

十年專注于品牌網站建設 十余年專注于網站建設_小程序開發(fā)_APP開發(fā),低調、敢創(chuàng)新、有情懷!
南昌百恒網絡微信公眾號 掃一掃關注
小程序
tel-icon全國服務熱線:400-680-9298,0791-88117053
掃一掃關注百恒網絡微信公眾號
掃一掃打開百恒網絡微信小程序

百恒網絡

南昌百恒網絡

結合實例詳細介紹ECMAScript 布爾操作符屬性及應用技巧

百恒網絡 2012-02-13 5064

ECMAScript 布爾操作符(邏輯非、邏輯與、邏輯或)

布爾操作符 在一門編程語言中,布爾操作符的重要性堪比相等操作符。如果沒有測試兩個值關系的能力,那么諸如if...else和循環(huán)之類的語句就不會有用武之地了。布爾操作符一共有3個:非(NOT)、與 (AND)和或(OR)。

1.邏輯非

邏輯非操作符由一個嘆號(!)表示,可以應用于ECMAScript中的任何值。無論這個值是什么數據類型,這個操作符都會返回一個布爾值。邏輯非操作符首先會將它的操作數轉換為一個布爾值,然后再對其求反。也就是說,邏輯非操作符遵循下列規(guī)則:

◎如果操作數是一個對象,返回false;

◎如果操作數是一個空字符串,返回七rue;

◎如果操作數是一個非空字符串,返回false;

◎如果操作數是數值0,返回true;

◎如果操作數是任意非0數值(包括Infinity),返回false;

◎如果操作數是null,返回true;

◎如果操作數是NaN,返回true;

◎如果操作數是undefined,返回true。

下面幾個例子展示了應用上述規(guī)則的結果:

alert(! false); //true

alert(!"blue"); //false

alert(1 0); //true

alert(! NaN); //true

aler七(!""); //true

alert( !12345); //false

邏輯非操作符也可以用于將一個值轉換為與其對應的布爾值。而同時使用兩個邏輯非操作符,實際上就會模擬Bolean()轉型函數的行為。其中,第一個邏輯非操作會基于無論什么操作數返回一個布爾值,而第二個邏輯非操作則對該布爾值求反,于是就得到了這個值真正對應的布爾值。當然,最終結果與對這個值使用Boolean()函數相同,如下面的例子所示:

alert(!!"blue"); //true

alert(!1 0); //false

alert(!!NaN); //false

alert(!!‘’“); //false

alert(!!12345); //true

2.邏輯與

邏輯與操作符由兩個和號(&&)表示,有兩個操作數,如下面的例子所示:

var result=true&&false;

邏輯與的真值表如下:

第一個操作數第二個操作數結果

truetruetrue

truefalsefalse

falsetruefalse

falsefalsefalse

南昌網頁設計公司前端開發(fā)工程師小結:邏輯與操作可以應用于任何類型的操作數,而不僅僅是布爾值。在有一個操作數不是布爾值的情況下,邏輯與操作就不一定返回布爾值;此時,它遵循下列規(guī)則:

◎如果第一個操作數是對象,則返回第二個操作數;

◎如果第二個操作數是對象,則只有在第一個操作數的求值結果為true的情況下才會返回該對象;

◎如果兩個操作數都是對象,則返回第二個操作數;

◎如果有一個操作數是null,則返回null:

◎如果有一個操作數是NaN,則退回NaN:

◎如果有一個操作數是undefined,則返回undefined。

邏輯與操作屬于短路操作,即如果第一個操作數能夠決定結果,那么就不會再對第二個操作數求值。對于邏輯與操作而言,如果第一個操作數是false,則無論第二個操作數是什么值,結果都不再可能是true了。來看下面的例子:

var found=true;

var result=(found&&s。meUndefinedVariable); //這里會發(fā)生錯誤

alert(result); //這一行不會執(zhí)行

在上面的代碼中,當執(zhí)行邏輯與操作時會發(fā)生錯誤,因為變量someUndefinedVariable沒有聲明。由于變量found的值是true,所以邏輯與操作符會繼續(xù)對變量someUndefinedVariable求值。

someUndefinedVariable尚未定義,因此就會導致錯誤。這說明不能在邏輯與操作中使用未定義的值。如果像下面這個例中一樣,將found的值設置為false,就不會發(fā)生錯誤了:

var ound = true;

var result=(found&& someUndefinedVariable); //不會發(fā)錯誤

alert (result); //會執(zhí)行("false")

在這個例子中,警告框會顯示出來。無論變量someUndefinedVariable有沒有定義,也永遠不對它求值,因為第一個操作數的值是false。而這也就意味著邏輯與操作的結果必定是false,根本用不著再對&&右側的操作數求值了。在使用邏輯與操作符時要始終銘記它是一個短路操作符。

3.邏輯或

邏輯或操作符由兩個豎線符號(||)表示,有兩個操作數,如下面的例子所示:

var result=true || false;

邏輯或的真值表如下:

第一個操作數第二個操作數結果

truetruetrue

truefalsetrue

falsetruetrue

falsefalsefalse

南昌做網站公司前端開發(fā)工程師對邏輯或進行小結:與邏輯與操作相似,如果有一個操作數不是布爾值,邏輯或也不一定返回布爾值;此時,它遵循下列規(guī)則:

◎如果第一個操作數是對象,則返回第一個操作數;

◎如果第一個操作數的求值結果為false,則返回第二個操作數;

◎如果兩個操作數都是對象,則返回第一個操作數;

◎如果兩個操作數都是null,則返回null;

◎如果兩個操作數都是NaN,則返回NaN;

◎如果兩個操作數都是unde fined,則返回undefined。

與邏輯與操作符相似,邏輯或操作符也是短路操作符。也就是說,如果第一個操作數的求值結果為true,就不會對第二個操作數求值了。下面看一個例子:

var found=true;

var result= (found || someUndefinedVariable}; //不會發(fā)生錯誤

alert (result); //會執(zhí)行("true")

這個例子跟前面的例子一樣,變量someUnde finedVariable也沒有定義。但是,由于變量found的值是true.而變量someUndefinedVariable永遠不會被求值,因此結果就會輸出"true"。如果像下面這個例子一樣,把found的值改為false.

var found = false;

var result=(found || someUndefinedVariable); //這里會發(fā)生錯誤

alert (result); //這一行不會執(zhí)行

我們可以利用邏輯或的這一行為來避免為變量賦null或undefined值。例如:

var myObject=preferredObject || backupObject;

在這個例子中,變量myObj ect將被賦予等號后面兩個值中的一個。變量preferredObject中包含優(yōu)先賦給變量myObj ect的值,變量backupObj ect負責在preferredObject中不包含有效值的情況下提供后備值。如果preferredObjec七的值不是null,那么它的值將被賦給myObject;如果是null,則將backupObject的值賦給myObj ect。ECMAScript程序的賦值語句經常會使用這種模式,南昌網站建設公司百恒網絡也將采用這種模式。

希望本文對廣大站長或從事企業(yè)網站建設公司的團隊有所幫助,如對此不太理解的,可以與南昌網絡公司百恒網絡技術部聯(lián)系。我們很高興與廣大站長和從事企業(yè)網站建設公司技術人員分享我們的技術和經驗。


400-680-9298,0791-88117053
掃一掃關注百恒網絡微信公眾號
掃一掃打開百恒網絡小程序

歡迎您的光顧,我們將竭誠為您服務×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
售后服務 售后服務
 
備案專線 備案專線
 
×