這部分的面試知識點是和前幾天發的那篇基礎知識點是一塊兒的,小鹿按照分類把它分紅兩篇進行分享。前端
動畫:面試官問我 0.1 + 0.2 __ 0.3 ? 爲何?該如何正確回答?面試
暑假去面試,進門先作筆試題,筆試題的基礎部分大多都是這樣 JS 基礎問題,作的時候老是含含糊糊,感受對也感受不對。其實回來總接到,仍是這些基礎點沒有掌握牢靠,看了過一段時間就忘,有沒有一種方法把這些零散知識理解記住呢?算法
試一下動畫方式,看看有沒有好的效果,進入今天的正題。編程
任何的值若是轉化爲布爾類型時,咱們只記住其中幾個轉化爲false
便可,由於若是轉化爲true
一塊記的話,較容易引發混亂。網絡
只有null(小寫的 n)、undefined、」」(中間沒有空格)、NAN、0、-0、false
再進行類型轉換時,能夠轉化爲false
。全部對象類型都會轉化爲true
。數據結構
爲了更好的準備面試,小鹿送你一套動畫記憶法:post
null與 unefined
它倆什麼到底區別?初學者最容易弄不懂。學習
null 表示"沒有對象",即該處不該該有值。undefined 表示"缺乏值",就是此處應該有一個值,可是尚未定義。動畫
在細節上,null是一個表示"無"的對象,轉爲數值時爲 0;undefined是一個表示"無"的原始值,轉爲數值時爲NaN。spa
二者轉化爲boolean
時,能夠記憶爲無,都會轉化爲false
。
NaN 與 ""
NaN 屬性是表明非數字值的特殊值。該屬性用於指示某個值不是數字。能夠把 Number 對象設置爲該值,來指示其不是數字值。
注意:這裏的空字符串沒有空格,若是面試的時候加空格了,好比這樣「 」,它就返回 true 了。
三、+0 與 -0
若是此處有忽略,請給予補充!
對象類型轉原始類型時,它會根據不一樣的轉換對象調用不一樣的轉化方法(回顧一下咱們以前寫的文章,對象類型和原始類型的區別)。
若是轉化爲字符串,就會調用toString
方法;
若是轉化非字符串,則會優先調用valueOf
方法(返回自身類型)。
注意:toString 方法和 valueOf 方法是能夠改寫的。
對象轉字符串類型的話,直接調用原有的toString方法。
除 String
類型外,Object
轉其餘類型的話,直接調用valueOf
方法。
若是調用valueOf
返回的不是原始類型的值,會調用toString
方法,toString
若是返回的不是原始值,就會報錯。
加法運算符是在運行時決定,究竟是執行相加,仍是執行鏈接。運算數的不一樣,致使了不一樣的語法行爲,這種現象稱爲「重載」。
一、若是雙方都不是字符串,則將轉化爲數字或字符串。
二、字符串和字符串以及字符串和非字符串相加都會進行鏈接。 三、對於無效格式,則會轉化爲NaN。其餘算術運算符(好比減法、除法和乘法)都不會發生重載。它們的規則是:全部運算子一概轉爲數值,再進行相應的數學運算。
&&:
全部條件爲真,總體才爲真。
||:
只有一個條件爲真,總體就爲真。
一、A && B
首先看 A 的真假,A 爲假,返回 A 的值,A 爲真返回 B 的值。(無論B 是啥)
typeOf
一直有一個問題就是可以正確的判斷類型嗎?除了null
都顯示正確的類型,可是並不能準確的判斷對象的具體類型。
那咱們用什麼準確的判斷呢?要想正確的判斷一個對象類型是經過內部機制的原型鏈判斷的,instanceOf可以正確的判斷對象的原理是什麼?這個問題不在這裏說,由於後期會出一個用動畫形式去講解 JS 的原型和原型鏈,到時候初學者就更容易懂了。對於爲何
typeOf null
判斷爲對象類型,上一篇文章已經分享過,能夠看以前的一篇文章。
對於==和===之間的區別,使用==,若是比較的雙方的數據類型不同的話,就進行類型轉換。如上所述,類型轉換以後再進行對比。
首先比較雙方的類型是否相等,若是類型相同,就比較大小,不然將會如下面步驟進行,首先進行類型轉換。
一、判斷二者是否爲null和undefined,是則返回 true。
二、判斷二者類型是否分別爲字符串和數字,是的話將字符串轉化爲number類型,而後比較大小。
三、若是二者其中一個是布爾類型,就把先把布爾類型轉化爲number再進行判斷大小。
四、若是對象類型和原始類型比較,先把對象類型轉化爲原始類型再進行比較。
對於===來講,只比較數值大小就能夠了。
以上咱們對數據類型轉換進行了全面的總結,尤爲是其中的一些細節問題考的特別的細,因此小鹿以動畫的形式展示出來,便於在面試的時候牢記使用,更重要的一點就是在實際開發中遇到這些問題不用處處翻找,從而使你快速的定位問題,節省開發時間。
上邊的代碼例子,都是小鹿親自在控制檯輸出查得出的結果,可是也避免不了有錯誤的狀況,若是有錯誤能夠給小鹿提出來哦!
文章都看完了,爲什麼不妨點個贊呢?嘻嘻,那就說明你很自私,你怕那麼好的文章讓別人也看到。開個小小玩笑。
其實我也很自私,我把個人一直以來堅持原創的公衆號:「小鹿動畫學編程」偷偷給你,裏邊匯聚了小鹿以動畫形式講解的數據結構與算法、網絡原理、Web 等技術文章。
做者Info:
【做者】:小鹿
【原創公衆號】小鹿動畫學編程
【簡介】:和小鹿同窗一塊兒用動畫的方式從零基礎學編程,將Web前端領域、數據結構與算法、網絡原理等通俗易懂的呈獻給小夥伴。公衆號回覆 「資料」 送一從零自學資料大禮包!
【轉載說明】:轉載請說明出處,謝謝合做!~