這篇文章主要介紹了ECMAScript中的等性運算符有什么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
等性運算符一般用在判斷兩個變量是否相等的運算。在處理原始值時,這種運算相當簡單,涉及對象,任務(wù)就稍有點復(fù)雜。
性運算符分:
1、等號和非等號用于處理原始值
2、全等號和非全等號用于處理對象
一、等號和非等號(比較值)
在 ECMAScript 中,
1、等號由雙等號(==)表示,當且僅當兩個運算數(shù)相等時,它返回 true。
2、非等號由感嘆號加等號(!=)表示,當且僅當兩個運算數(shù)不相等時,它返回 true。為確定兩個運算數(shù)是否相等,這兩個運算符都會進行類型轉(zhuǎn)換。
執(zhí)行類型轉(zhuǎn)換的規(guī)則如下:
1、如果一個運算數(shù)是 Boolean 值,在檢查相等性之前,把它轉(zhuǎn)換成數(shù)字值。false 轉(zhuǎn)換成 0,true 為 1
2、如果一個運算數(shù)是字符串,另一個是數(shù)字,在檢查相等性之前,要嘗試把字符串轉(zhuǎn)換成數(shù)字
3、如果一個運算數(shù)是對象,另一個是字符串,在檢查相等性之前,要嘗試把對象轉(zhuǎn)換成字符串
4、如果一個運算數(shù)是對象,另一個是數(shù)字,在檢查相等性之前,要嘗試把對象轉(zhuǎn)換成數(shù)字
來點栗子說事兒:
一、如果一個運算數(shù)是 Boolean 值,在檢查相等性之前,把它轉(zhuǎn)換成數(shù)字值。false 轉(zhuǎn)換成 0,true 為 1
console.log(false == 0);//true
console.log(true == 1);//true
console.log(false == 1);//false
console.log(true == 0);//false
console.log(false != 0);//false
console.log(true != 1);//false
console.log(false != 1);//true
console.log(true != 0);//true
二、如果一個運算數(shù)是字符串,另一個是數(shù)字,在檢查相等性之前,要嘗試把字符串轉(zhuǎn)換成數(shù)字
console.log("12" == 12);//true
console.log("12" != 12);//false
三、如果一個運算數(shù)是對象,另一個是字符串,在檢查相等性之前,要嘗試把對象轉(zhuǎn)換成字符串
var obj = ['a']
var str = "a"
console.log(obj.toString());//a -> 轉(zhuǎn)換為字符串之后變成a
console.log(obj == str);//true
console.log(obj != str);//fasle
四、如果一個運算數(shù)是對象,另一個是數(shù)字,在檢查相等性之前,要嘗試把對象轉(zhuǎn)換成數(shù)字
var obj = ['12']
var Num = 12;
console.log(Number(obj));//12 -> 轉(zhuǎn)換為數(shù)字之后變成12
console.log(obj == Num);//true
在比較時,該運算符還遵守下列規(guī)則:
1、值 null 和 undefined 相等
2、在檢查相等性時,不能把 null 和 undefined 轉(zhuǎn)換成其他值
3、如果某個運算數(shù)是 NaN,等號將返回 false,非等號將返回 true
4、如果兩個運算數(shù)都是對象,那么比較的是它們的引用值。如果兩個運算數(shù)指向同一對象,那么等號返回 true,否則兩個運算數(shù)不等
我們的好朋友,栗子同志來了:
一、值 null 和 undefined 相等
var a = '';
console.log(a.innerHTML);//undefined
console.log(null == a.innerHTML);//true
console.log(null != a.innerHTML);//fasle
二、在檢查相等性時,不能把 null 和 undefined 轉(zhuǎn)換成其他值
這個就理解字面意思就行了,我不知道怎么給你們找例子了,CGL對不起大家了。
三、如果某個運算數(shù)是 NaN,等號將返回 false,非等號將返回 true
console.log(NaN == null);//false
console.log(NaN == undefined);//false
console.log(NaN == NaN);//false
console.log(NaN == 0);//false
console.log(NaN != 0);//true
四、如果兩個運算數(shù)都是對象,那么比較的是它們的引用值。如果兩個運算數(shù)指向同一對象,那么等號返回 true,否則兩個運算數(shù)不等
例子有點不切當,大家將就看看吧,大概意思是這樣的。
var fn1 = function(){console.log('我是fn1')};
var fn2 = fn1
var fn3 = function(){fn1()}function(){ //跟單:www.gendan5.com
fn1()
fn2()
fn3()
console.log(fn1 == fn2);
console.log(fn2 == fn3);
var fn4 = [1,2,3];
var fn5 = [1,2,3];
console.log(fn4 == fn5);
二、全等號和非全等號(比較值和類型)
等號和非等號的同類運算符是全等號和非全等號。這兩個運算符所做的與等號和非等號相同,只是它們在檢查相等性前,不執(zhí)行類型轉(zhuǎn)換。
1、全等號由三個等號表示(===),只有在無需類型轉(zhuǎn)換運算數(shù)就相等的情況下,才返回 true。
2、非全等號由感嘆號加兩個等號(!==)表示,只有在無需類型轉(zhuǎn)換運算數(shù)不相等的情況下,才返回 true。
var num1 = 30;
var num2 = 30;
var str = "30";
console.log(num1 === num2);//true -> 值一樣,類型都是數(shù)字
console.log(num1 === str);//false -> 值一樣,類型是數(shù)字和字符串
console.log(NaN === NaN);//false -> 直接false,硬記
console.log(num1 != str);//false -> 類型不一樣,但是值一樣
console.log(NaN != NaN);//true -> 直接true,硬記
console.log(NaN !== NaN);//true -> 直接true,硬記
console.log(num1 !== num2);//false -> 值和類型都一樣
感謝你能夠認真閱讀完這篇文章,希望小編分享的“ECMAScript中的等性運算符有什么用”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當前標題:ECMAScript中的等性運算符有什么用-創(chuàng)新互聯(lián)
文章源于:http://m.newbst.com/article0/dcsjoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、ChatGPT、網(wǎng)站設(shè)計、Google、網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)