js判断数据类型(typeofinstanceofObject.prototype.toString.call(value))

Posted 胖鹅68

tags:

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

文章目录

一、文章参考

  1. instanceof和typeof的原理

二、问题描述

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))的主要内容,如果未能解决你的问题,请参考以下文章

JS基础 基本类型

web前端 -- js 判断数据类型方法

js判断数据类型方法汇总

如何判断js中的数据类型

js如何判断变量的数据类型

01 JS的数据类型及如何判断数据类型