typeof須要注意的內容

上一篇文章中有提到過typeof,可是講的比較粗略,歸納以下:瀏覽器

clipboard.png


如今須要歸納一下注意點,以下:
一、值和類型安全

js中只有值纔有類型,變量沒有類型。js不作「類型強制」,也就是說,語言引擎不要求變量老是持有與其初始值同類型的值。一個變量能夠如今被賦值爲字符串類型值,隨後又被賦值爲數字類型值。
執行typeof操做,獲得的結果不是該變量的類型,而是該變量持有的值的類型,由於js中的變量沒有類型。

二、undefined和undeclaredspa

變量在未持有值的時候爲undefined,此時typeof返回undefined;
尚未在做用域中聲明過的變量,此時typeoof返回的也是undefined。

clipboard.png

瀏覽器對沒有聲明過的變量進行處理過程並非很好,‘b is not defined’容易讓人誤覺得是‘b is undefined’。強調一下,‘undefined’和‘is not defined’是兩碼事。
而typeof處理undeclared變量的方式則是更讓人鬱悶:

clipboard.png

對於undeclared(或者not defined)變量,typeof照樣返回‘undefined’。還須要注意的是,雖然b是一個undeclared變量,但typeof b並無報錯,這是由於typeof有一個特殊的安全防範機制。
相關文章
相關標籤/搜索