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数据类型及数据类型判断的四种方法的主要内容,如果未能解决你的问题,请参考以下文章