js 資料型別判斷

2021-10-23 05:12:22 字數 2740 閱讀 7155

基本資料型別:undefined、null、boolean、number、string

複雜資料型別 :object

es6新增資料型別:symbol

let bool = true;

let num = 1;

let str = 'abc';

let und= undefined;

let nul = null;

let arr = [1,2,3,4];

let obj = ;

let fun = function();

let s1 = symbol();

console.log(typeof bool); //boolean

console.log(typeof num);//number

console.log(typeof str);//string

console.log(typeof und);//undefined

console.log(typeof nul);//object

console.log(typeof arr);//object

console.log(typeof obj);//object

console.log(typeof fun);//function

console.log(typeof s1); //symbol

typeof可以識別出基本資料型別,但是不能識別null,array,都把它統一歸為object型別

console.log(bool instanceof boolean);// false

console.log(num instanceof number);// false

console.log(str instanceof string);// false

console.log(und instanceof object);// false

console.log(nul instanceof object);// false

console.log(arr instanceof array);// true

console.log(obj instanceof object);// true

console.log(fun instanceof function);// true

console.log(s1 instanceof symbol);// false

從結果中看出instanceof不能識別出基本的資料型別 number、boolean、string、undefined、unll、symbol,但是可以識別出array、object、function,同時對於是使用new宣告的型別,它還可以檢測出多層繼承關係。

console.log(bool.constructor === boolean);// true

console.log(num.constructor === number);// true

console.log(str.constructor === string);// true

console.log(arr.constructor === array);// true

console.log(obj.constructor === object);// true

console.log(fun.constructor === function);// true

console.log(s1.constructor === symbol);//true

null、undefined沒有construstor方法,因此constructor不能判斷undefined和null,並且它是不安全的,因為contructor的指向是可以被改變

object.prototype.tostring.call(''); // [object string]

object.prototype.tostring.call(1); // [object number]

object.prototype.tostring.call(true); // [object boolean]

object.prototype.tostring.call(undefined); // [object undefined]

object.prototype.tostring.call(null); // [object null]

object.prototype.tostring.call(new function()); // [object function]

object.prototype.tostring.call(new date()); // [object date]

object.prototype.tostring.call(); // [object array]

object.prototype.tostring.call(new regexp()); // [object regexp]

object.prototype.tostring.call(new error()); // [object error]

object.prototype.tostring.call(document); // [object htmldocument]

object.prototype.tostring.call(window); //[object window]

此方法可以相對較全的判斷js的資料型別

js判斷資料型別

1 typeof 形如 var x xx typeof x string 返回型別有 undefined string number boolean function object 缺點 對於object型別不能細分是什麼型別 優點 對空null的判斷 undefined 的應用 2 instanc...

js判斷資料型別

了解js的都知道,有個typeof 用來判斷各種資料型別,有兩種寫法 typeof typeof 如下例項 typeof 2 輸出 number typeof null 輸出 object typeof 輸出 object typeof 輸出 object typeof function 輸出 fu...

js判斷資料型別

1 判斷是否為陣列型別 2 判斷是否為字串型別 3 判斷是否為數值型別 isnan 變數 如果為true就是數字型別 注意這個函式一般針對數字型別來判斷是否值為nan,若變數為非數字型別,則先轉化為數字型別再做判斷,用此函式時,別忘考慮空串和空格 這倆轉化為數字是0 4 判斷是否為日期型別 5 判斷...