91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在JavaScript中使用相等運算符

發布時間:2021-04-14 16:29:15 來源:億速云 閱讀:164 作者:Leah 欄目:web開發

本篇文章為大家展示了如何在JavaScript中使用相等運算符,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

1. 操作數類型不同

對比結果是false

1 === "1" // false
true === "true" // false
undefined === true //false
1 === true //false

2.同一類原始類型值

如果兩個值都是原始類型值(數字、字符串、布爾值),值相同就返回true,值不同就返回false。

對于原始類型值,要注意的是,0和-0是相等的;如果兩個值是字符串,需要它們在16位編碼的相同位置上有相同的值才是相等。如果是不同的16位編碼序列,就算有相同的內容,相同的長度,結果也是不相等。

'1' === '0' //false
1 === 0x1 // true

3.同是對象

如果兩個值是對象(數組、函數、對象、Symbol),對于兩個對象比較的是引用,如果引用指向的是不同的對象,則結果是不相等。

{} === {} // false
[] === [] // false
(function () {} === function () {}) // false

var v1 = {};
var v2 = v1; //v2和v1指向同一個引用地址
v1 === v2 // true 

// 沒有參數的情況
let s1 = Symbol();
let s2 = Symbol();

s1 === s2 // false

// 有參數的情況
let s1 = Symbol('foo');
let s2 = Symbol('foo');
let s3 = s1;
s1 === s2 // false
s1 === s2 // true

4. null和undefined

如果兩個值都是null或者都是undefined,結果是true

null === null //true
undefined === undefined //true

5.NaN

如果兩個值都是NaN,結果是false

NAN === NAN //false

NaN和任何數字都不相等,包括它自身

相等運算符

1. 值的類型相同

應用嚴格相等運算符轉換規則的值類型相同規則(除:操作數類型不同)。

2.不同原始類型值

如果是不同原始類型值(數字、字符串、布爾值)進行比較,將非數字類型轉換成數字,再進行比較。

0 == undefined //false
// 等同于 0 == Number(undefined)
// 等同于0 == NAN

0 == null //false
// 等同于 0 == Number(null)

1 == true // true
// 等同于 1 == Number(true)

'true' == true // false
// 等同于 Number('true') == Number(true)
// 等同于 NaN === 1

'' == 0 // true
// 等同于 Number('') == 0
// 等同于 0 == 0

'1' == true // true
// 等同于 Number('1') == Number(true)
// 等同于 1 == 1

'\n 123 \t' == 123 // true
// 因為字符串轉為數字時,省略前置和后置的空格

3. 對象和原始類型值

如果其中一個操作數是對象,另外一個是原始類型值(數字、字符串、布爾值),按如下規則轉:

  • 將對象轉換成原始類型值

  • 轉換后的原始類型值與另一個操作數的類型一樣,使用值類型相同的規則

  • 如果不一樣,將非數字類型轉換成數字再進行比較。

例1:對象對比數字

[1] == 1 //true

解析:

a. [1]先轉換成原始值"1";

b. 轉換后與右邊的操作數1類型不一樣,將"1"轉換成1;

c. 1 == 1 結果是true

例2:對象對比字符串

[1] == "1"

解析:

a. [1]先轉換成原始值"1";

b. 轉換后與右邊的操作數"1"類型一樣,"1"=="1",結果是true;

例3:對象對比布爾值

[1] == true

解析:

a. [1]先轉換成原始值"1";

b. 轉換后與右邊的操作數true類型不一樣,將右邊的操作數true轉換成1;

c. 1 == 1結果是true

4. null和undefined

如果其中一個值是null,另外一個是undefined,結果是相等

null == undefined

對象轉換為原始類型規則

比較操作符的操作數可能是任意類型,然而只有數字和字符串才能真正執行比較操作,因此那些不是數字和字符串的類型都將進行類型轉換。轉換的規則如下:

  1. 如果對象類型是Date,會調用該對象的toString();

  2. 其他情況下,如果valueOf()返回的是原始類型,會調用對象的valueOf();

  3. 其他情況下(如果valueOf()不存在或沒有返回原始類型),會調用toString()方法,大部分情況下是用的這種轉換。

  4. 如果沒有toString()方法,則拋出一個類型異常錯誤

上面的規則只是應用于+、==、!=中涉及到的對象轉為原始類型的轉換規則,如果是> ,< 等其他運算符涉及的轉換,轉換規則中除去日期對象的特殊情況,其他是一樣的,也就是說規則是下面這樣的:

  1. 其他情況下,如果valueOf()返回的是原始類型,會調用對象的valueOf();

  2. 其他情況下(如果valueOf()不存在或沒有返回原始類型),會調用toString()方法,大部分情況下是用的這種轉換。

  3. 如果沒有toString()方法,則拋出一個類型異常錯誤

上述內容就是如何在JavaScript中使用相等運算符,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

信宜市| 林州市| 库伦旗| 吐鲁番市| 延寿县| 高州市| 宁化县| 海盐县| 霸州市| 乐东| 永顺县| 诸城市| 荣昌县| 阿克陶县| 噶尔县| 池州市| 沙洋县| 合阳县| 满洲里市| 宾阳县| 会同县| 绵竹市| 名山县| 全州县| 贵定县| 昭通市| 来凤县| 开化县| 左权县| 广平县| 普定县| 民权县| 北宁市| 河西区| 墨竹工卡县| 兰西县| 凤凰县| 攀枝花市| 汝阳县| 松桃| 栖霞市|