最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解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)文章

最新評論

晋中市| 隆昌县| 东兴市| 木兰县| 湖州市| 郓城县| 日照市| 云梦县| 黄梅县| 卢湾区| 威宁| 安图县| 若羌县| 改则县| 新田县| 赣榆县| SHOW| 镇远县| 京山县| 扎鲁特旗| 延庆县| 西充县| 长海县| 清远市| 蚌埠市| 纳雍县| 雷波县| 五寨县| 廉江市| 沙田区| 旌德县| 宜宾市| 垣曲县| 武宁县| 嵩明县| 伊宁县| 象山县| 鹤山市| 六枝特区| 顺义区| 大庆市|