js類型判斷


因為JS的arguments是弱類型的。所以多數場合下,對於arguments進行判斷,然后針對不同類型進行不同處理(類似Java的重載)。

JS語言中數據類型共有6種,5種基本數據類型:Unfined, Null, Boolean, Number, String,還有特殊類型Object。

判斷方法有很多,這里列舉三個: typeof, instanceof, Object.prototype.toString.call()。下面分別說明其用途:

1. typeof

  用的最頻繁的一種判斷方式,適用於基本類型和函數判斷。不適用於Object類型的進一步判斷。

  

  補充:

  1. 當變量不存在時,if (variable) 會拋出異常,而 typeof variable === 'undefined'則適用
  2. typeof NaN 為 "number",針對NaN需要進一步結合 isNaN()來判斷

 2. instanceof

  a instanceof b: 判斷b是否是a的原型,返回 true / false

  適用於引用類型的進一步判斷。 

var a = [];

//針對array的檢測
console.log(a instanceof Array); //true
console.log(a instanceof Object); //true,因為Array是Object子集

  進一步的了解,可以參考https://www.cnblogs.com/Trr-984688199/p/6180040.html

 3. Object.prototype.toString.call()

var a = [1, 2];
Object.prototype.toString.call(a);     // "[object Array]"

a = {};
Object.prototype.toString.call(a);    // "[object Object]"

a = "123";
Object.prototype.toString.call(a);    // "[object String]"

a = 1;
Object.prototype.toString.call(a);    // "[object Number]"

a = true;
Object.prototype.toString.call(a);    // "[object Boolean]"

a = function() {};
Object.prototype.toString.call(a);    // "[object Function]"

 

 4. 其他 

  • Array.isArray: 用於確定傳遞的值是否是一個 Array, 返回true / false

 

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM