javascript
javascript基础之判断变量类型
判斷變量類型
javaSctipt數據類型7種: Number, String, Boolean, Null, Undefined, Object, Symbol
typeof操作符
可能返回的值如下
- undefined
- boolean
- string
- number
- object
- function
注意: typeof 的能力有限,其對于null, Date、RegExp類型返回的都是"object"
typeof null // 'object' typeof {}; // "object" typeof []; // "object" typeof new Date(); // "object"使用場景:區分對象和原始類型,要區分一種對象類型和另一種對象類型,可以使用: instanceof運算符或對象contructor屬性
instanceof運算符
用法: 左邊的運算數是一個object,右邊運算數是對象類的名字或者構造函數;返回true或false
[] instanceof Array; // true [] instanceof Object; // true [] instanceof RegExp; // false new Date instanceof Date; // true如果object是class或者構造函數的實例,則返回true,如果不是或者是null也返回false
instanceof運算符判斷是否為數組類型
contructor屬性
所有的對象都有一個constructor屬性,指向該對象的基本對啊性構造函數類型的屬性
var a = new Array; a.constructor === Array // truevar n = new Number(3); n.constructor === Number; // true判斷為數組還可以這樣
function isArray(arr){ return typeof arr === "object" && arr.constructor === Array; }Object.ProtoType.toString()
每個對象都有一個toString()方法,返回"[object type]",其中type是對象的類型
當執行該方法時,執行以下步驟
1,獲取對象的class屬性
2,連接字符串 "[object "+結果1+"]" ;
所以可以通過toString()來獲取每個對象的類型,為了每個對象都可以通過Object.protoType.toString()來檢測,需要以Funciton.prototype.call()或Function.prototype.apply()的形式來調用,傳遞要檢查的對象作為第一個參數,稱為thisArg
Object.prototype.toString.call(new Date); // "[object Date]" Object.prototype.toString.call([]); // "[object Array]" Object.prototype.toString.call(/reg/ig); // "[object RegExp]"參考
JavaScript中判斷對象類型的幾種方法總結
About
github
blog
總結
以上是生活随笔為你收集整理的javascript基础之判断变量类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Boolan STL 第三周笔记
- 下一篇: 不可不知的站群外推方法与技巧