摘要:面試官和有什么區(qū)別童鞋要求數(shù)據(jù)類型相同,會進行隱式類型轉(zhuǎn)換面試官能輸出么童鞋下面,我們來一起看看和到底有什么區(qū)別,以及上面問題的解法。其中,被稱為引用數(shù)據(jù)類型,其他種被稱為基本數(shù)據(jù)類型。是一種類似于字符串的,表示獨一無二值的數(shù)據(jù)類型。
面試官:== 和 === 有什么區(qū)別?
童鞋:=== 要求數(shù)據(jù)類型相同,== 會進行隱式類型轉(zhuǎn)換...
面試官:JavaScript:(a==1 && a==2 && a==3)能輸出true么?
童鞋:???
下面,我們來一起看看 == 和 === 到底有什么區(qū)別,以及上面問題的解法。
數(shù)據(jù)類型JavaScript 語言中,數(shù)據(jù)類型有:undefined、null、Boolean、String、Number、Object、Symbol。
其中,Object被稱為引用數(shù)據(jù)類型,其他6種被稱為基本數(shù)據(jù)類型。Symbol 是一種類似于字符串的,表示獨一無二值的數(shù)據(jù)類型。
隱式類型轉(zhuǎn)換做一個小實驗,得出不同類型的值用 == 操作符比較后的結(jié)果
類型(x) | 類型(y) | 結(jié)果 |
---|---|---|
undefined | null | true |
String | Number | toNumber(x) == y |
Boolean | 任何數(shù)據(jù)類型 | toNumber(x) == y |
Object | 任何數(shù)據(jù)類型 | toPrimitive(x) == y |
Symbol | 任何數(shù)據(jù)類型 | false |
toNumber() 和 toPrimitive() 方法是內(nèi)部的,可以看一下估值
toNumber() 方法,比較好理解,就是轉(zhuǎn)換成 Number 類型,類似 Number() 方法。
類型 | 結(jié)果 |
---|---|
undefined | NAN |
null | 0 |
Boolean | 任何數(shù)據(jù)類型 |
String | Number |
toPrimitive() 方法
類型 | 結(jié)果 |
---|---|
Object | 如果對象的 valueOf 方法的結(jié)果是原始值,返回原始值; 如果對象的 toString 方法返回原始值,就返回這個值; 其他情況都返回一個錯誤 |
舉個例子,來說明一下 toPrimitive() 方法
let test = { value: 0, valueOf () { console.log("in valueOf fun") return this.value }, toString () { console.log("in toString fun") return this.value } } console.log("test == 0 ?", test == 0)
控制臺輸出結(jié)果:
回到面試題JavaScript:(a==1 && a==2 && a==3)能輸出true么?
let a = { value: 0, valueOf () { return ++this.value } }
面試遇到隱式類型轉(zhuǎn)換,再也不會怕啦~
本文首發(fā)于:https://github.com/yingye/Blog/issues/1
歡迎各位關(guān)注我的Blog,正文以issue形式呈現(xiàn),喜歡請點star,訂閱請點watch~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/107762.html
摘要:與此相對,強類型語言的類型之間不一定有隱式轉(zhuǎn)換。三為什么是弱類型弱類型相對于強類型來說類型檢查更不嚴格,比如說允許變量類型的隱式轉(zhuǎn)換,允許強制類型轉(zhuǎn)換等等。在中,加性運算符有大量的特殊行為。 從++[[]][+[]]+[+[]]==10?深入淺出弱類型JS的隱式轉(zhuǎn)換 本文純屬原創(chuàng)? 如有雷同? 純屬抄襲? 不甚榮幸! 歡迎轉(zhuǎn)載! 原文收錄在【我的GitHub博客】,覺得本文寫的不算爛的...
摘要:綁定書中提到在中,實際上并不存在所謂的構(gòu)造函數(shù),只有對于函數(shù)的構(gòu)造調(diào)用。規(guī)則使用構(gòu)造調(diào)用的時候,會自動綁定在期間創(chuàng)建的對象上。指向新創(chuàng)建的對象綁定比隱式綁定優(yōu)先級高。 showImg(http://ww1.sinaimg.cn/large/005Y4rCogy1fstcwvzkjzj30sg0g0qqn.jpg); 前言 最近正在看《你不知道的JavaScript》,里面關(guān)于this綁...
摘要:幾個月前面試的時候問我性能優(yōu)化我可能會開始背誦雅虎軍規(guī),加點,代碼層面稍稍講點,現(xiàn)在系統(tǒng)的梳理下性能優(yōu)化的方方面面本文涉及方面有代碼優(yōu)化網(wǎng)絡(luò)請求過程角度入手解析建立鏈接網(wǎng)絡(luò)往返時延數(shù)據(jù)傳輸網(wǎng)絡(luò)問題角度入手請求數(shù)量流量性能優(yōu)化測試工具代碼優(yōu)化 幾個月前面試的時候問我性能優(yōu)化我可能會開始背誦雅虎軍規(guī),加點webp,代碼層面稍稍講點,現(xiàn)在系統(tǒng)的梳理下性能優(yōu)化的方方面面 本文涉及方面有: 代...
摘要:幾個月前面試的時候問我性能優(yōu)化我可能會開始背誦雅虎軍規(guī),加點,代碼層面稍稍講點,現(xiàn)在系統(tǒng)的梳理下性能優(yōu)化的方方面面本文涉及方面有代碼優(yōu)化網(wǎng)絡(luò)請求過程角度入手解析建立鏈接網(wǎng)絡(luò)往返時延數(shù)據(jù)傳輸網(wǎng)絡(luò)問題角度入手請求數(shù)量流量性能優(yōu)化測試工具代碼優(yōu)化 幾個月前面試的時候問我性能優(yōu)化我可能會開始背誦雅虎軍規(guī),加點webp,代碼層面稍稍講點,現(xiàn)在系統(tǒng)的梳理下性能優(yōu)化的方方面面 本文涉及方面有: 代...
摘要:相對于顯式使用,隱式轉(zhuǎn)換則更加簡潔。隱式轉(zhuǎn)換為布爾值將其他類型值隱式轉(zhuǎn)換為布爾值是我們最常用的一種轉(zhuǎn)換。在以下場景中,都是進行判斷,而只要傳入的值不是布爾值,都會通過隱式類型轉(zhuǎn)換轉(zhuǎn)為布爾值。原文地址阿木木的博客與隱式鴨子類型轉(zhuǎn)換 showImg(https://segmentfault.com/img/remote/1460000017309581); 前言 說實話,JavaScrip...
閱讀 2393·2021-09-29 09:42
閱讀 622·2021-09-06 15:02
閱讀 2740·2021-09-02 15:40
閱讀 2182·2019-08-30 14:23
閱讀 1949·2019-08-30 13:48
閱讀 1361·2019-08-26 12:01
閱讀 1023·2019-08-26 11:53
閱讀 2220·2019-08-23 18:31