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


基於你不知道的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"){

   console.log(' debug is staring here')

}

通常使用typeof來做安全防范機制,還有一種方法:檢測所有全局變量是否是全局對象的屬性

if(window.DEBUG){

//...

}

當訪問的屬性不存在的時候,也不會產生ReferenceError,只是undefined.



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com