javascript数据类型及数据类型判断的四种方法

Posted 江州益彤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript数据类型及数据类型判断的四种方法相关的知识,希望对你有一定的参考价值。

一、数据类型

6种基本类型

string
number
boolean
null
undefined
symbol

3种引用类型

object任意对象
function特殊对象
array特殊对象

二、数据类型判断的四种方法

2.1typeof(特点:不能具体是哪一类object)

可以利用 typeof 来判断number, string, object, boolean, function, undefined, symbol 这七种类型,但是,typeof 在判断一个 object的数据的时候只能告诉我们这个数据是 object, 而不能细致的具体到是哪一种 object(例如:数组,对象,正则,返回值都是object,不能具体是哪一类object)

function fun(){};
let s=new String('string');
let array =new Array([1,2,3]);
let obj=new Object();

console.log(typeof 12);//'number'
console.log(typeof '123');//'string'
console.log(typeof true);//'boolean'
console.log(typeof undefined);//'undefined'
console.log(typeof Symbol(13) );//'symbol'
console.log(typeof fun);//'function'

//下面都是object类型但是不知道具体类型
console.log(typeof null);//'object'
console.log(typeof s);//'object'
console.log(typeof array);//'object'
console.log(typeof obj);//'object'

2.2instanceof(特点:可以用来判断对象的具体类型)

主要的作用:就是判断一个实例是否属于某种类型
原理:
instanceof 主要的实现原理就是只要右边变量的 prototype 在左边变量的原型链上即可。因此,instanceof 在查找的过程中会遍历左边变量的原型链,直到找到右边变量的 prototype,如果查找失败,则会返回 false,

function fun() {};
let s = new String('string');
let array = new Array([1, 2, 3]);
let obj = new Object();

console.log(fun instanceof Function); //true
console.log(s instanceof String); //true
console.log(obj instanceof Object); //true
console.log(array instanceof Array); //true

//同时在js中一切引用实例皆对象,所以下面语句也是true
console.log(array instanceof Object && s instanceof Object && fun instanceof Object && obj instanceof Object); //true

instanceof 也可以判断一个实例是否是其父类型或者祖先类型的实例

let person = function () {
}
let programmer = function () {
}
programmer.prototype = new person();
let nicole = new programmer();
console.log(nicole instanceof person); // true
console.log(nicole instanceof programmer); // true

2.3Object.prototype.toString(特点:比较全面,但是低版本IE兼容问题)

function fun() {};
let s = new String('string');
let array = new Array([1, 2, 3]);
let obj = new Object();

console.log(Object.prototype.toString.call(fun)); //[object Function]
console.log(Object.prototype.toString.call(s)); //[object String]
console.log(Object.prototype.toString.call(array)); //[object Array]
console.log(Object.prototype.toString.call(obj)); //[object Object]

2.4===判断undefined和null

var a;
console.log(a===undefined);//true

var b=null;
console.log(b===null);//true

以上是关于javascript数据类型及数据类型判断的四种方法的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中判断数据类型的四种方法

js中判断数据类型的四种方法总结

js判断数据类型的四种方法

[转]js判断数据类型的四种方法

JS中检测数据类型的四种方法

走进大数据 | NoSQL数据库的四种类型比对