js判断数据类型(typeofinstanceofObject.prototype.toString.call(value))
Posted 胖鹅68
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js判断数据类型(typeofinstanceofObject.prototype.toString.call(value))相关的知识,希望对你有一定的参考价值。
文章目录
一、文章参考
二、问题描述
const userInfo =
username: 'zhangsan',
age: 18,
birthday: new Date(),
isMarried: true,
hobbies: ['篮球', '足球', '乒乓球'],
families:
father:
id: 1,
name: '李四'
,
mather:
id: 2,
name: '王五'
// 遍历JSON对象
function iteratorJson ()
// 遍历JSON 对象
for(key in userInfo)
console.log('key', key)
var value = userInfo[key]
console.log('value', value)
// 判断 valueObj 是否是数组
if (value instanceof Array)
// 遍历 数组对象
for (var i = 0; i < value.length; i++)
let arrayValue = value[i]
console.log('arrayValue', arrayValue)
// 表示 value 是一个JSON 对象
if (Object.prototype.toString.call(value) === '[object Object]')
for(let subKey in value)
console.log('value[subKey]', value[subKey])
在遍历JSON 对象的时候,发现JSON 对象的值是各种类型,如果是数组和JSON 对象,就要继续遍历,问题:怎么知道值是什么类型?
三、typeof
typeof一般被用于判断一个变量的类型,我们可以利用typeof来判断 number、boolean、string、object、function、undefined、symbol这七种类型。
number ==> number
boolean ==> boolean
string ==> string
function ==> function
(数组,null,对象) ==> object // typeof不能正确判断null的数据类型
undefined ==> undefined
symbol ==> symbol
JS的基本数据类型:string、number、boolean、null、undefined、symbol
JS引用数据类型:Object、Array、RegExp、Date、Function
四、instanceof
instanceof可以判断这个变量是否为某个函数的实例。而typeof不能
Object.prototype.toString.call(123) // [object Number]
Object.prototype.toString.call('123') // [object String]
Object.prototype.toString.call(undefined) // [object Undefined]
Object.prototype.toString.call(true) // [object Boolean]
Object.prototype.toString.call() // [object Object]
Object.prototype.toString.call([]) // [object Array]
Object.prototype.toString.call(function() ) // [object Function]
Object.prototype.toString.call(null) // [object Null]
以上是关于js判断数据类型(typeofinstanceofObject.prototype.toString.call(value))的主要内容,如果未能解决你的问题,请参考以下文章