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

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

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

前言

簡單的來講:

== 代表的是相等

=== 代表的是嚴格相等

==運算符

==,兩邊值類型不同的時候,要先進行類型轉(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

練習

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

  • 一個JavaScript的求愛小特效

    一個JavaScript的求愛小特效

    本文做了一個JavaScript的求愛小特效,不僅能出現(xiàn)下面的圖的效果,還可以讓這個圖形跟隨著鼠標轉(zhuǎn)動哦,需要的朋友可以參考下
    2014-05-05
  • 基于JS實現(xiàn)文字轉(zhuǎn)語音即文本朗讀

    基于JS實現(xiàn)文字轉(zhuǎn)語音即文本朗讀

    這篇文章主要為大家詳細介紹了JavaScript如何利用SpeechSynthesis實現(xiàn)文字轉(zhuǎn)語音即文本朗讀的功能,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-10-10
  • 詳解JavaScript中的作用域

    詳解JavaScript中的作用域

    作用域是JavaScript中一個重要的概念,它決定了變量和函數(shù)在代碼中的可訪問性和可見性,了解JavaScript的作用域?qū)τ诰帉懜咝А⒖删S護的代碼至關(guān)重要,本文將深入介紹JavaScript作用域相關(guān)的知識點,其中包括作用域類型,作用域鏈,變量提升以及閉包等
    2023-08-08
  • 微信小程序自定義帶價格顯示日歷效果

    微信小程序自定義帶價格顯示日歷效果

    這篇文章主要為大家詳細介紹了微信小程序自定義帶價格顯示日歷效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • JS、jquery實現(xiàn)幾分鐘前、幾小時前、幾天前等時間差顯示效果的代碼實例分享

    JS、jquery實現(xiàn)幾分鐘前、幾小時前、幾天前等時間差顯示效果的代碼實例分享

    在新浪微博首頁看到每條微博后邊顯示的時間并不是標準的年-月-日格式,而是經(jīng)過換算的時間差,如:發(fā)表于5分鐘前、發(fā)表于“2小時前”,比起標準的時間顯示格式,貌似更加直觀和人性化
    2014-04-04
  • JavaScript對象創(chuàng)建模式實例匯總

    JavaScript對象創(chuàng)建模式實例匯總

    這篇文章主要介紹了JavaScript對象創(chuàng)建模式,結(jié)合實例形式總結(jié)分析了JavaScript常見的對象創(chuàng)建模式,包括工廠模式、構(gòu)造函數(shù)模式、原型模式、動態(tài)原型模式、寄生構(gòu)造函數(shù)模式、穩(wěn)妥構(gòu)造函數(shù)模式等,需要的朋友可以參考下
    2016-10-10
  • ES6 proxy和reflect的使用方法與應用實例分析

    ES6 proxy和reflect的使用方法與應用實例分析

    這篇文章主要介紹了ES6 proxy和reflect的使用方法,結(jié)合具體實例形式分析了ES6 proxy和reflect基本功能、原理、使用方法與操作注意事項,需要的朋友可以參考下
    2020-02-02
  • JS中如何實現(xiàn)復選框全選功能

    JS中如何實現(xiàn)復選框全選功能

    本文通過實例代碼給大家介紹了js中實現(xiàn)復選框全選功能,代碼簡單易懂,非常不錯,需要的朋友參考下
    2016-12-12
  • 一個級聯(lián)菜單(IE ONLY),不過代碼很精簡!

    一個級聯(lián)菜單(IE ONLY),不過代碼很精簡!

    一個級聯(lián)菜單(IE ONLY),不過代碼很精簡!...
    2006-10-10
  • Storage、cookie的用途和優(yōu)缺點比較

    Storage、cookie的用途和優(yōu)缺點比較

    cookie的大小是受限制的,并且每次請求cookie都會被發(fā)送,浪費寬帶,cookie還需要指定作用域,不可以跨域調(diào)用。cookie的作用是與服務器進行交互,作為http規(guī)范的一部分存在,而webstorage僅僅是為了本地“存儲”數(shù)據(jù)而生。
    2023-07-07

最新評論