您好,登錄后才能下訂單哦!
這篇文章主要介紹了ECMAScript中的等性運算符有什么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
等性運算符一般用在判斷兩個變量是否相等的運算。在處理原始值時,這種運算相當簡單,涉及對象,任務就稍有點復雜。
性運算符分:
1、等號和非等號用于處理原始值
2、全等號和非全等號用于處理對象
一、等號和非等號(比較值)
在 ECMAScript 中,
1、等號由雙等號(==)表示,當且僅當兩個運算數相等時,它返回 true。
2、非等號由感嘆號加等號(!=)表示,當且僅當兩個運算數不相等時,它返回 true。為確定兩個運算數是否相等,這兩個運算符都會進行類型轉換。
執行類型轉換的規則如下:
1、如果一個運算數是 Boolean 值,在檢查相等性之前,把它轉換成數字值。false 轉換成 0,true 為 1
2、如果一個運算數是字符串,另一個是數字,在檢查相等性之前,要嘗試把字符串轉換成數字
3、如果一個運算數是對象,另一個是字符串,在檢查相等性之前,要嘗試把對象轉換成字符串
4、如果一個運算數是對象,另一個是數字,在檢查相等性之前,要嘗試把對象轉換成數字
來點栗子說事兒:
一、如果一個運算數是 Boolean 值,在檢查相等性之前,把它轉換成數字值。false 轉換成 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
二、如果一個運算數是字符串,另一個是數字,在檢查相等性之前,要嘗試把字符串轉換成數字
console.log("12" == 12);//true
console.log("12" != 12);//false
三、如果一個運算數是對象,另一個是字符串,在檢查相等性之前,要嘗試把對象轉換成字符串
var obj = ['a']
var str = "a"
console.log(obj.toString());//a -> 轉換為字符串之后變成a
console.log(obj == str);//true
console.log(obj != str);//fasle
四、如果一個運算數是對象,另一個是數字,在檢查相等性之前,要嘗試把對象轉換成數字
var obj = ['12']
var Num = 12;
console.log(Number(obj));//12 -> 轉換為數字之后變成12
console.log(obj == Num);//true
在比較時,該運算符還遵守下列規則:
1、值 null 和 undefined 相等
2、在檢查相等性時,不能把 null 和 undefined 轉換成其他值
3、如果某個運算數是 NaN,等號將返回 false,非等號將返回 true
4、如果兩個運算數都是對象,那么比較的是它們的引用值。如果兩個運算數指向同一對象,那么等號返回 true,否則兩個運算數不等
我們的好朋友,栗子同志來了:
一、值 null 和 undefined 相等
var a = '';
console.log(a.innerHTML);//undefined
console.log(null == a.innerHTML);//true
console.log(null != a.innerHTML);//fasle
二、在檢查相等性時,不能把 null 和 undefined 轉換成其他值
這個就理解字面意思就行了,我不知道怎么給你們找例子了,CGL對不起大家了。
三、如果某個運算數是 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
四、如果兩個運算數都是對象,那么比較的是它們的引用值。如果兩個運算數指向同一對象,那么等號返回 true,否則兩個運算數不等
例子有點不切當,大家將就看看吧,大概意思是這樣的。
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);
二、全等號和非全等號(比較值和類型)
等號和非等號的同類運算符是全等號和非全等號。這兩個運算符所做的與等號和非等號相同,只是它們在檢查相等性前,不執行類型轉換。
1、全等號由三個等號表示(===),只有在無需類型轉換運算數就相等的情況下,才返回 true。
2、非全等號由感嘆號加兩個等號(!==)表示,只有在無需類型轉換運算數不相等的情況下,才返回 true。
var num1 = 30;
var num2 = 30;
var str = "30";
console.log(num1 === num2);//true -> 值一樣,類型都是數字
console.log(num1 === str);//false -> 值一樣,類型是數字和字符串
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中的等性運算符有什么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。