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

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

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

前言

簡單的來講:

== 代表的是相等

=== 代表的是嚴格相等

==運算符

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

如果兩個都是數(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類型轉換成Number類型再進行比較

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

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

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

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

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

===運算符

==,不做類型轉換,類型不同的一定不等。

  • 先判斷數(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

練習

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


		let obj1 = {
		    a: 10,
		    b: 'hello'
		};
		console.log(obj);
		console.log("對象之間比較,== 與 === 結果相同");
		console.log("obj == obj1結果:" + (obj == obj1));  // false 相同類型,== 與 === 無區(qū)別,比較引用
		console.log("obj === obj1結果:" + (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結果:" + (num == str));  // true 轉為Number值相同 
		console.log("String === Number結果:" + (num === str));// false 類型不同
		console.log("同類型值相同 == 結果:" + (num == num1));  // true 類型相同,值相同
		console.log("同類型值相同 === 結果:" + (num === num1));// true 類型相同,值相同
		console.log("同類型值不同 == 結果:" + (str == str1));  // false 類型相同, 值不同
		console.log("同類型值不同 === 結果:" + (str === str1));// false 類型相同, 值不同
		
		console.log("=========================");
		let objStr = '{"a":10,"b":"hello"}';
		console.log("對象與字符串 == 比較" + (objStr == obj));  // false 對象內容內部結構與字符串表示方式不同
		console.log("對象與字符串 === 比較" + (objStr === obj));// false 類型不同

輸出:

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

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

相關文章

最新評論

西乌| 抚宁县| 特克斯县| 江源县| 黄梅县| 广水市| 宁波市| 安泽县| 民勤县| 汉阴县| 宾阳县| 濮阳县| 建宁县| 湾仔区| 萨迦县| 石渠县| 靖江市| 泾阳县| 拜泉县| 和静县| 永川市| 弋阳县| 萨嘎县| 安平县| 文昌市| 丰城市| 资中县| 江阴市| 丹寨县| 穆棱市| 青铜峡市| 扎囊县| 东乌珠穆沁旗| 会理县| 绍兴市| 凤凰县| 宣化县| 依兰县| 福安市| 樟树市| 天柱县|