詳解JavaScript運算符中==和===的區(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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JavaScript實現(xiàn)將阿拉伯數(shù)字轉換成中文大寫
現(xiàn)在有需求將億元之內的阿拉伯數(shù)字轉換成中文,例如:1234轉換后變?yōu)橐磺Ф偃脑俎D換成壹仟貳佰叁拾肆,所以本文給大家介紹了用JavaScript實現(xiàn)將阿拉伯數(shù)字轉換成中文大寫,感興趣的小伙伴跟著小編一起來看看吧2024-05-05
JavaScript+Canvas創(chuàng)建一個獨特的字符畫生成器
這篇文章主要介紹了如何使用 Canvas 和 JavaScript 創(chuàng)建一個獨特的字符畫生成器,通過此生成器,我們可以將圖片轉換為由字符構成的作品,感興趣的可以了解下2024-01-01
從數(shù)組中隨機取x條不重復數(shù)據(jù)的JS代碼
這篇文章主要介紹了從數(shù)組中隨機取x條不重復數(shù)據(jù)的JS代碼,有需要的朋友可以參考一下2013-12-12
Javascript+XMLHttpRequest+asp.net無刷新讀取數(shù)據(jù)庫數(shù)據(jù)
Javascript+XMLHttpRequest+asp.net無刷新讀取數(shù)據(jù)庫數(shù)據(jù)2009-08-08

