javascript等號(hào)運(yùn)算符使用詳解
本章節(jié)介紹一下javascript中等號(hào)運(yùn)算符的用法,需要的朋友可以做一下參考。
等號(hào)運(yùn)算符最為基本的用法就是比較兩個(gè)運(yùn)算數(shù)是否相等,看如下代碼實(shí)例:
var a=2,b=2;
console.log(a==b);
如果兩個(gè)操作數(shù)相等,那么返回值就是true,否則返回false。
上面是最為基本的用法,下面再來介紹一下它相對(duì)比較特殊的幾種情況。
var str="5";
var num=5;
console.log(str==num);
上面的代碼返回值是true。
不少朋友可能會(huì)有疑問,一個(gè)是字符串,一個(gè)是數(shù)值類型,怎么返回值是true,當(dāng)然這在c#或者java肯定是錯(cuò)誤的,但是在js中這一切都不是問題,會(huì)進(jìn)行隱式數(shù)據(jù)類型轉(zhuǎn)換,字符串會(huì)嘗試轉(zhuǎn)換為數(shù)字。
再來看一段代碼實(shí)例:
console.log(true==1);
上面的代碼也會(huì)返回true,因?yàn)閠rue也會(huì)進(jìn)行隱式轉(zhuǎn)換,它將會(huì)被轉(zhuǎn)換為1,false將會(huì)被轉(zhuǎn)換為false。
下面再看一段代碼實(shí)例:
var obj={
valueOf:function(){return 10}
}
console.log(obj==10);
一個(gè)對(duì)象竟然可以和一個(gè)數(shù)字直接量比較大小,并且返回值是true。
這是因?yàn)閷?duì)象會(huì)首先調(diào)用valueOf()方法,如果沒有此方法則嘗試調(diào)用toString()方法。
javascript的兩個(gè)等號(hào)和三個(gè)等號(hào)的區(qū)別:
在javascript代碼經(jīng)??吹饺齻€(gè)等號(hào)和兩個(gè)等號(hào)的使用,下面就介紹一下它們兩者的區(qū)別是什么。
代碼實(shí)例:
實(shí)例一:
console.log(0=="");
console.log(0==false);
console.log(""==false);
實(shí)例二:
console.log(0==="");
console.log(0===false);
console.log(""===false);
上面你的代碼演示了兩個(gè)運(yùn)算符的,下面介紹一下它們兩者的區(qū)別。
三個(gè)等號(hào)全等運(yùn)算符:
既然是全等運(yùn)算符,那么兩個(gè)運(yùn)算數(shù)必須完全一樣才能夠相等,具體比較規(guī)則如下:
1.如果兩個(gè)操作是值類型,那么兩個(gè)操作數(shù)必須完全相等才會(huì)相等。
2.如果是引用類型,兩個(gè)操作數(shù)必須指向同一個(gè)對(duì)象才會(huì)相等。
兩個(gè)等號(hào)運(yùn)算符:
這個(gè)運(yùn)算符比較博愛一些,在比較的時(shí)候如果兩個(gè)操作數(shù)的類型不同,會(huì)進(jìn)行類型轉(zhuǎn)換,具體規(guī)則如下:
1.如果是數(shù)據(jù)類型相同的值類型,那么比較規(guī)則和全等運(yùn)算符相同。
2.如果兩個(gè)操作數(shù)類型相同,那么它們也是有可能相同的:
a:如果一個(gè)是null、一個(gè)是undefined,那么兩個(gè)是相同的。
b:如果一個(gè)是字符串,一個(gè)是數(shù)值,把字符串轉(zhuǎn)換成數(shù)值再進(jìn)行比較。
c:如果任一值是true,把它轉(zhuǎn)換成1再比較,如果任一值是false,把它轉(zhuǎn)換成0再比較。
d:如果一個(gè)是對(duì)象,另一個(gè)是數(shù)值或字符串,把對(duì)象轉(zhuǎn)換成基礎(chǔ)類型的值再比較。對(duì)象轉(zhuǎn)換成基礎(chǔ)類型,利用它的toString或者valueOf方法。
以上就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- 淺析Javascript中雙等號(hào)(==)隱性轉(zhuǎn)換機(jī)制
- JavaScript中三個(gè)等號(hào)和兩個(gè)等號(hào)你了解多少
- 細(xì)數(shù)JavaScript 一個(gè)等號(hào),兩個(gè)等號(hào),三個(gè)等號(hào)的區(qū)別
- JavaScript中三個(gè)等號(hào)和兩個(gè)等號(hào)的區(qū)別(== 和 ===)淺析
- 詳解JavaScript中雙等號(hào)引起的隱性類型轉(zhuǎn)換
- javascript中的=等號(hào)個(gè)數(shù)問題兩個(gè)跟三個(gè)有什么區(qū)別
- 淺析js中2個(gè)等號(hào)與3個(gè)等號(hào)的區(qū)別
- javascript 全等號(hào)運(yùn)算符使用說明
- 淺談JavaScript中等號(hào)、雙等號(hào)、 三等號(hào)的區(qū)別
相關(guān)文章
Bootstrap每天必學(xué)之模態(tài)框(Modal)插件
Bootstrap每天必學(xué)之模態(tài)框(Modal)插件,模態(tài)框(Modal)是覆蓋在父窗體上的子窗體。通常,目的是顯示來自一個(gè)單獨(dú)的源的內(nèi)容,可以在不離開父窗體的情況下有一些互動(dòng)。子窗體可提供信息、交互等,感興趣的小伙伴們可以參考一下2016-04-04Bootstrap警告(Alerts)的實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了Bootstrap警告(Alerts)的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03js中的bigint類型轉(zhuǎn)化為json字符串時(shí)報(bào)無法序列化的問題
JSON序列化指將JSON對(duì)象轉(zhuǎn)換為JSON字符串,J實(shí)現(xiàn)方式有兩種:一種是調(diào)用JSON對(duì)象內(nèi)置的stringify()函數(shù),一種是為對(duì)象自定義toJSON()函數(shù),本文重點(diǎn)介紹js中的bigint類型轉(zhuǎn)化為json字符串時(shí)報(bào)無法序列化的問題,感興趣的朋友一起看看吧2024-01-01js實(shí)現(xiàn)方塊上下左右移動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)方塊上下左右移動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08js實(shí)現(xiàn)hashtable的賦值、取值、遍歷操作實(shí)例詳解
這篇文章主要介紹了js實(shí)現(xiàn)hashtable的賦值、取值、遍歷操作,結(jié)合實(shí)例形式分析了哈希表的原理、哈希鍵值對(duì)操作相關(guān)技巧,需要的朋友可以參考下2016-12-12