欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解JavaScript運算符中==和===的區(qū)別

 更新時間:2023年05月23日 08:20:44   作者:摸魚王胖嘟嘟  
在JavaScript中==運算符和===運算符是經(jīng)常遇到的,那么二者有哪些區(qū)別呢,本文就來和大家進行簡單的討論,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)學(xué)習(xí)

前言

簡單的來講:

== 代表的是相等

=== 代表的是嚴格相等

==運算符

==,兩邊值類型不同的時候,要先進行類型轉(zhuǎn)換,再比較

如果兩個都是數(shù)值||字符串||布爾值,直接進行比較

console.log(1 == 1); // true
console.log(1 == 2); // false
console.log('a' == 'a'); // true
console.log('a' == 'b'); // false
console.log(true == true); // true
console.log(true == false); // false

如果一個是String類型,另一個是Number類型,會把String類型轉(zhuǎn)換成Number類型再進行比較

console.log(1 == '1'); // true
console.log(1 == 'true'); // false

如果有一個操作符是布爾值,在比較時就會轉(zhuǎn)換成Number類型再比較

console.log(0 == false); // true

如果有一個是對象,另一個不是,則會調(diào)用對象的 valueOf() 和 toString() 把對象進行一個轉(zhuǎn)換

console.log([] == false); // true
console.log([] == 0); // true

只有 null 遇到 undefined 進行比較是 true,其他組合都是不相等的

console.log(null == undefined); // true
console.log(null == 0); // false 
console.log(null == false); // false
console.log(undefined == 0); // false

===運算符

==,不做類型轉(zhuǎn)換,類型不同的一定不等。

  • 先判斷數(shù)據(jù)的類型是否相等,如果類型都不同,直接就返回 false
  • 如果數(shù)據(jù)類型相等,就會開始判斷值是否相等
  • 如果兩個都是 Object,那么會判斷它們的引用地址是否一致
console.log(1 === '1'); // false
console.log(0 === false); // false
console.log(null === undefined); // false
let a = {};
let b = {};
let c = a;
console.log(a === b); // false
console.log(a === c); // true

練習(xí)

console.log("==========================")
		let obj = {
		    a: 10,
		    b: 'hello'
		};


		let obj1 = {
		    a: 10,
		    b: 'hello'
		};
		console.log(obj);
		console.log("對象之間比較,== 與 === 結(jié)果相同");
		console.log("obj == obj1結(jié)果:" + (obj == obj1));  // false 相同類型,== 與 === 無區(qū)別,比較引用
		console.log("obj === obj1結(jié)果:" + (obj === obj1));// false 相同類型,== 與 === 無區(qū)別,比較引用
		
		console.log("==========================")
		console.log("String與Number之間比較")
		let num = 10;
		let num1 = 10;
		let str = "10";
		let str1 = "String";
		console.log("String == Number結(jié)果:" + (num == str));  // true 轉(zhuǎn)為Number值相同 
		console.log("String === Number結(jié)果:" + (num === str));// false 類型不同
		console.log("同類型值相同 == 結(jié)果:" + (num == num1));  // true 類型相同,值相同
		console.log("同類型值相同 === 結(jié)果:" + (num === num1));// true 類型相同,值相同
		console.log("同類型值不同 == 結(jié)果:" + (str == str1));  // false 類型相同, 值不同
		console.log("同類型值不同 === 結(jié)果:" + (str === str1));// false 類型相同, 值不同
		
		console.log("=========================");
		let objStr = '{"a":10,"b":"hello"}';
		console.log("對象與字符串 == 比較" + (objStr == obj));  // false 對象內(nèi)容內(nèi)部結(jié)構(gòu)與字符串表示方式不同
		console.log("對象與字符串 === 比較" + (objStr === obj));// false 類型不同

輸出:

==========================
{a: 10, b: 'hello'}
對象之間比較,== 與 === 結(jié)果相同
obj == obj1結(jié)果:false
obj === obj1結(jié)果:false
==========================
String與Number之間比較
String == Number結(jié)果:true
String === Number結(jié)果:false
同類型值相同 == 結(jié)果:true
同類型值相同 === 結(jié)果:true
同類型值不同 == 結(jié)果:false
同類型值不同 === 結(jié)果:false
=========================

到此這篇關(guān)于詳解JavaScript運算符中==和===的區(qū)別的文章就介紹到這了,更多相關(guān)JavaScript運算符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS中的Error對象及使用JSON.stringify()序列化Error問題

    JS中的Error對象及使用JSON.stringify()序列化Error問題

    這篇文章主要介紹了JS中的Error對象及使用JSON.stringify()序列化Error問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • JavaScript實現(xiàn)圖片合成下載的示例

    JavaScript實現(xiàn)圖片合成下載的示例

    這篇文章主要介紹了JavaScript實現(xiàn)圖片合成下載的示例,幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下
    2020-11-11
  • 淺談利用JavaScript進行的DDoS攻擊原理與防御

    淺談利用JavaScript進行的DDoS攻擊原理與防御

    這篇文章主要介紹了淺談利用JavaScript進行的DDoS攻擊原理與防御,以及介紹了相關(guān)的中間人攻擊原理,需要的朋友可以參考下
    2015-06-06
  • Web前端開發(fā)工具——bower依賴包管理工具

    Web前端開發(fā)工具——bower依賴包管理工具

    Bower 是 twitter 推出的一款包管理工具,基于nodejs的模塊化思想,把功能分散到各個模塊中,讓模塊和模塊之間存在聯(lián)系,通過 Bower 來管理模塊間的這種聯(lián)系,本文給大家介紹bower依賴包管理工具,感興趣的朋友一起學(xué)習(xí)
    2016-03-03
  • JavaScript 點擊頁面上的按紐,彈出層,背景變灰

    JavaScript 點擊頁面上的按紐,彈出層,背景變灰

    點擊頁面上的按紐,彈出一個層,背景變灰,這樣的效果現(xiàn)在網(wǎng)頁應(yīng)用的比較多,這里只是個簡單的實現(xiàn)方式
    2010-06-06
  • 無阻塞加載腳本分析[全]

    無阻塞加載腳本分析[全]

    script標簽的阻塞行為會對頁面性能產(chǎn)生負面影響,大多數(shù)瀏覽器在下載或執(zhí)行腳本的同時,會阻塞下載位于它之后的資源,也會阻塞渲染位于它之后的元素。
    2011-01-01
  • ES6學(xué)習(xí)之變量的兩種命名方法示例

    ES6學(xué)習(xí)之變量的兩種命名方法示例

    最近在學(xué)習(xí)ES,所以想著將自己學(xué)習(xí)的一些經(jīng)驗技巧總結(jié)一下,方便學(xué)習(xí),所以下面這篇文章主要跟大家分享介紹了關(guān)于ES6學(xué)習(xí)之變量的兩種命名方法,文中通過示例代碼介紹的很詳細,需要的朋友們下面來一起看看吧。
    2017-07-07
  • JavaScript實現(xiàn)網(wǎng)頁留言板功能

    JavaScript實現(xiàn)網(wǎng)頁留言板功能

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)網(wǎng)頁留言板功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 重學(xué)JS之顯示強制類型轉(zhuǎn)換詳解

    重學(xué)JS之顯示強制類型轉(zhuǎn)換詳解

    這篇文章主要給大家介紹了關(guān)于重學(xué)JS之顯示強制類型轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用JS具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 詳解js中Json的語法與格式

    詳解js中Json的語法與格式

    本文詳細介紹了js中Json的語法與編寫格式,有需要的朋友可以看下
    2016-11-11

最新評論