基本資料型別: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 判斷...