淺析js中2個(gè)等號(hào)與3個(gè)等號(hào)的區(qū)別
首先,== equality 等同,=== identity 恒等。
==, 兩邊值類型不同的時(shí)候,要先進(jìn)行類型轉(zhuǎn)換,再比較。
===,不做類型轉(zhuǎn)換,類型不同的一定不等。
下面分別說明:
先說 ===,這個(gè)比較簡(jiǎn)單。下面的規(guī)則用來判斷兩個(gè)值是否===相等:
1、如果類型不同,就[不相等]
2、如果兩個(gè)都是數(shù)值,并且是同一個(gè)值,那么[相等];(!例外)的是,如果其中至少一個(gè)是NaN,那么[不相等]。(判斷一個(gè)值是否是NaN,只能用isNaN()來判斷)
3、如果兩個(gè)都是字符串,每個(gè)位置的字符都一樣,那么[相等];否則[不相等]。
4、如果兩個(gè)值都是true,或者都是false,那么[相等]。
5、如果兩個(gè)值都引用同一個(gè)對(duì)象或函數(shù),那么[相等];否則[不相等]。
6、如果兩個(gè)值都是null,或者都是undefined,那么[相等]。
再說 ==,根據(jù)以下規(guī)則:
1、如果兩個(gè)值類型相同,進(jìn)行 === 比較。
2、如果兩個(gè)值類型不同,他們可能相等。根據(jù)下面規(guī)則進(jìn)行類型轉(zhuǎn)換再比較:
a、如果一個(gè)是null、一個(gè)是undefined,那么[相等]。
b、如果一個(gè)是字符串,一個(gè)是數(shù)值,把字符串轉(zhuǎn)換成數(shù)值再進(jìn)行比較。
c、如果任一值是 true
- 淺析Javascript中雙等號(hào)(==)隱性轉(zhuǎn)換機(jī)制
- JavaScript中三個(gè)等號(hào)和兩個(gè)等號(hào)你了解多少
- 細(xì)數(shù)JavaScript 一個(gè)等號(hào),兩個(gè)等號(hào),三個(gè)等號(hào)的區(qū)別
- JavaScript中三個(gè)等號(hào)和兩個(gè)等號(hào)的區(qū)別(== 和 ===)淺析
- 詳解JavaScript中雙等號(hào)引起的隱性類型轉(zhuǎn)換
- javascript等號(hào)運(yùn)算符使用詳解
- javascript中的=等號(hào)個(gè)數(shù)問題兩個(gè)跟三個(gè)有什么區(qū)別
- javascript 全等號(hào)運(yùn)算符使用說明
- 淺談JavaScript中等號(hào)、雙等號(hào)、 三等號(hào)的區(qū)別
相關(guān)文章
JavaScript DOM學(xué)習(xí)第一章 W3C DOM簡(jiǎn)介
文檔對(duì)象模式(Document Object Model DOM)用來描述HTML頁面中那些輸入框、圖片、段落等等元素與最頂級(jí)的結(jié)構(gòu)document之間的關(guān)系。用適當(dāng)?shù)姆椒▉磉x取這些元素,我們就可以改變他們。2010-02-02VB倒計(jì)時(shí)器和JS當(dāng)前時(shí)間
VB倒計(jì)時(shí)器和JS當(dāng)前時(shí)間...2006-11-11JavaScript中的parse()方法使用簡(jiǎn)介
這篇文章主要介紹了JavaScript中的parse()方法使用簡(jiǎn)介,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06用Object.prototype.toString.call(obj)檢測(cè)對(duì)象類型原因分析
在本篇文章里我們給大家剖析了用Object.prototype.toString.call(obj)檢測(cè)對(duì)象類型的原因,需要的朋友們可以學(xué)習(xí)下。2018-10-10JavaScript中setUTCFullYear()方法的使用簡(jiǎn)介
這篇文章主要介紹了JavaScript中setUTCFullYear()方法的使用簡(jiǎn)介,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06javascript數(shù)組操作方法小結(jié)和3個(gè)屬性詳細(xì)介紹
這篇文章主要介紹了javascript數(shù)組操作方法小結(jié)和3個(gè)屬性詳細(xì)介紹,需要的朋友可以參考下2014-07-07