你不知道的js(中)之基本型別

2021-07-25 22:21:24 字數 1008 閱讀 2521

基於你不知道的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 實際...