js 資料型別判斷

2021-10-01 14:19:06 字數 3323 閱讀 2656

值型別(基本型別):字串(string)、數字(number)、布林(boolean)、對空(null)、未定義(undefined)、symbol。

引用資料型別:物件(object)、陣列(array)、函式(function)。

console.log( typeof 1 );                       //number

console.log( typeof true );                   //boolean

console.log( typeof '1' );                     //string

console.log( typeof );                      //object

console.log( typeof {} );                      //object

console.log( typeof function(){} );     //function

console.log( typeof date );                 //function

console.log( typeof null );                   //object

console.log( typeof undefined );       //undefined

console.log( typeof nan);       //number

缺點:不能準確判斷資料型別;

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

console.log( "1" instanceof string );                    //false

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

console.log( instanceof object );                     //true

console.log( instanceof array );                      //true

console.log( {} instanceof object );                     //true

console.log( function(){} instanceof function );         //true

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

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

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

// instanceof用來判斷乙個物件是否是物件型別的例項,所以判斷1,「1」,true等值時返回false

console.log( new number(1) instanceof number );

console.log( new string("1") instanceof string );

console.log( new boolean(true) instanceof boolean );    //例項化之後返回true

不能用於undefined 與 null 因為它們沒有建構函式

const num = new number(2);

num.constructor === number;    // true

注:一般使用instanceof來判斷物件是否屬於某個類的例項,而不是constructor

instanceof不但可以判斷出是直接類的例項(通過new的方式),還可以判斷是否是父類的例項;而constructor屬性只可以判斷出是否是直接類的例項。

function person(name,age)

var student = new person("xiaoming", 18);

// instanceof

console.log(student instanceof person); //true

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

// constructor

console.log(student .constructor == person); //true

console.log(student .constructor == object); //false

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

console.log( object.prototype.tostring.call("1") );  // [object string]

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

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

console.log( object.prototype.tostring.call({}) );             // [object object]

console.log( object.prototype.tostring.call(date) ); // [object function]

console.log( object.prototype.tostring.call(function(){}) );   // [object function]

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

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

可以準確判斷資料型別

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 判斷...