// object.prototype.tostring.call(引數).slice(8,-1)
// let b = object.prototype.tostring;
// console.log(b.call(2)); // [object number]
// console.log(b.call(true).slice(8, -1)); // boolean
// console.log(b.call('str').slice(8, -1)); // string
// console.log(b.call().slice(8, -1)); // array
// console.log(b.call(function () ).slice(8, -1)); // function
// console.log(b.call({}).slice(8, -1)); // object
// console.log(b.call(undefined).slice(8, -1)); // undefined
// console.log(b.call(null).slice(8, -1)); // null
// 1. typeof判斷
// console.log(typeof 1); // number
// console.log(typeof true); // boolean
// console.log(typeof 'str'); // string
// console.log(typeof ); // object 陣列的資料型別在 typeof 中被解釋為 object
// console.log(typeof function () ); // function
// console.log(typeof {}); // object
// console.log(typeof undefined); // undefined
// console.log(typeof null); // object null 的資料型別被 typeof 解釋為 object
// 總結:數字number,布林值boolean,字串string,函式function,物件object,undefined 這一些資料型別在typeof 下都被精準的解釋,
// 只有陣列和null的資料型別不起作用
// 2. instanceof
// console.log(1 instanceof number); // false
// console.log(new number(1) instanceof number); // true
// console.log(true instanceof boolean); // false
// console.log(new boolean(true) instanceof boolean); // true
// console.log('str' instanceof string); // false
// console.log(new string('str') instanceof string); // true
// console.log( instanceof array); // true
// console.log(function () instanceof function); // true
// console.log({} instanceof object); // true
// console.log(undefined instanceof undefined); // 瀏覽器不識別
// console.log(null instanceof null); // 瀏覽器不識別
// 總結:只有引用資料型別(array,function,object)被精準判斷,
// 其他(數值number,布林值boolean,字串string)字面值不能被instanceof精準判斷
// 3. constructor
// console.log((1).constructor === number); // true
// console.log((true).constructor === boolean); // true
// console.log(('str').constructor === string); // true
// console.log(().constructor === array); // true
// console.log((function () ).constructor === function); // true
// console.log(({}).constructor === object); // true
// function fn() ;
// fn.prototype = new array();
// var f = new fn();
// console.log(f.constructor === fn); // false
// console.log(f.constructor === array); // true
// 總結:用costructor來判斷型別看起來是完美的,然而,如果我建立乙個物件,更改它的原型,這種方式也變得不可靠了
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 判斷...