基於你不知道的js中,裡面的內容都是基於es6的引擎環境,所以增加了一種內建型別:一共是:
(1)null
(2)undefined
(3)boolean
(4)number
(5)string
(6)object
(7)symbol
當你使用typeof 來檢視型別的時候,返回的是型別的字串,其中,對於null的判斷,我們採用復合條件來檢測null值的型別:
var a = null;
(!a && typeof a==='object')//true
當你檢測函式的時候:
typeof function a(){} ==='function'//true
函式不僅僅是物件,還可以擁有屬性,如:
function a(b,c)
a.length //2 表示其宣告的引數的個數
當你使用undefined的時候一定要與undeclared分開,是兩碼事,已經在作用域中宣告但是還沒賦值的變數是undefined,相反,還沒有在作用域中宣告的變數是undeclared的:
var a ;
typeof a://"undefined";
b;//referenceerror:b is not defined
but...
二者的typeof的結果是一樣的,都是undefined
舉乙個例子:在程式中使用全域性變數debug作為除錯模式的開關,在輸出除錯資訊到控制台之前,我們要檢測debug變數是否已經宣告,但是頂層的全域性變數宣告var debug = true只是在debug.js的檔案中才有,這時候採用這樣的安全防範機制:
if(typeof debug !=="undefined")
通常使用typeof來做安全防範機制,還有一種方法:檢測所有全域性變數是否是全域性物件的屬性
if(window.debug)
當訪問的屬性不存在的時候,也不會產生referenceerror,只是undefined.
《你不知道的JS(中卷 )》 五 語法
語法 grammar 與詞法 syntax 不同。後者強調語言的運算子 關鍵字等。而語法定義了此法規則是如何構成可執行的程式 的。語句 statement 與表示式 expression 舉例說明 var a 3 6 a 3 6是乙個賦值表示式,加上var,就表明是乙個宣告同時賦值的語句,即語句由乙...
《你不知道的JS(中卷 )》 二 值
本章介紹js中的幾個內建值型別。類陣列是一些類似陣列的 可以通過數字索引 值,例如set jquery查詢操作會返回dom元素列表。字串也是一種類陣列 數字索引 有length屬性以及indexof 和concat 方法。字串推薦的索引方式是charat 函式。js中只有一種數值型別 number ...
《你不知道的JS(中卷 )》 四 強制型別轉換
js中強制型別轉換非常常見,常常非常危險。這一章來具體介紹強制型別轉換。將值從一種型別轉換為另一種型別通常有兩種形式 型別轉換 type casting 顯式 強制型別轉換 coercion 隱式 其實這兩種分類的修辭並不特別準確。因為型別轉換 var b 1 var a string b 1 實際...