乐趣区

JS基础——数据类型判断typeof、instanceof、Object.prototype.toString

typeof 用在基本数据类型和函数时,返回其对应类型的描述,对于引用类型都返回为 object.

instanceof 无法判断基本数据类型,对于引用类型数据,返回其其对应类型。

Object.prototype.toString 无论基本数据类型还是引用类型返回其对应类型。

对应测试结果如下:

typeof test
instanceof
Object.prototype.toString.call(test)

var test = ‘xuriliang’;
string
test instanceof String //false

[object String]

var test = 27;
number
test instanceof Number //false

[object Number]

var test = true;
boolean
test instanceof Boolean //false

[object Boolean]

var test = [1,2,3];
object
test instanceof Array //true

[object Array]

test instanceof Object //true

var test = null;
object
test instanceof Object //false

[object Null]

var test = undefined;
undefined
test instanceof Object //false

[object Undefined]

var test = new String(‘xuriliang’)
object
test instanceof String //true

[object String]

test instanceof Object //true

var test = new Number(27)
object
test instanceof Number //true

[object Number]

test instanceof Object //true

var test = new Boolean(true)
object
test instanceof Boolean //true

[object Boolean]

test instanceof Object //true

var test = new Array(1,2,3)
object
test instanceof Array //true

[object Array]

test instanceof Object //true

var test = function(){}
function
test instanceof Function //true

[object Function]

test instanceof Object //true

var test = /d/
object
test instanceof RegExp //true

[object RegExp]

test instanceof Object //true

退出移动版