【Js 数据类型及类型判断】

Js 数据类型及类型判断

想要修建属于自己的一座美丽庄园,一砖一瓦,一草一木都不能马虎。同样学习也是如此,基础学扎实了,才能在前端路上走的更远。这次我们了解下 js 的数据类型。

Js 数据类型:

主要分为 值类型(基本类型) 和 引用数据类型(对象类型),基本数据类型的值是按值访问的,而引用类型的值是按引用访问的。通俗来说,就像一个入住门牌号001房间的一个人,值访问是你直接与人进行交流,引用访问是你知道有一个门牌号是001的房间。

基本数据类型:

Number 数字
String 字符串
Boolean 布尔值
Null 空
Undefined 未定义
Symbol // Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。

引用数据类型:

Object 对象
Array 数组
Function 函数
// 还有两个特殊的对象:
RegExp 正则
Date 日期

数据类型的判断方式:

这里就只介绍一个常见 typeof 方式以及一个我推荐的 toString 方式。

方式一:typeof

 var reslut
 reslut = 24
 console.log(typeof reslut) // number
 
 reslut = '33'
 console.log(typeof reslut) // string
 
 reslut = true
 console.log(typeof reslut) // boolean
 
 reslut = null
 console.log(typeof reslut) // object
 
 reslut = undefined
 console.log(typeof reslut) // undefined
 
 reslut = {}
 console.log(typeof reslut) // object
 
 reslut = new Date()
 console.log(typeof reslut) // object
 
 reslut = new RegExp()
 console.log(typeof reslut) // object
 
 reslut = []
 console.log(typeof reslut) // object
 
 reslut = function(){}
 console.log(typeof reslut) // function
 
 reslut = Symbol()
 console.log(typeof reslut) // symbol

这里我们会发现,通过 typeof 操作符返回的结果有些不尽人意,只返回了其处于原型链最顶端的 object 类型,没有返回我们想要的对应具体类型,下面我们使用另一种方式。

方式二:toString(推荐)

toString是 Object 的原型方法,默认返回当前对象的 [object Xxx],Xxx是对应具体的数据类型(首字母大写)。这里由于toString是Object 的原型方法,所以我进行了下小改动。

// 定义了个函数进行处理,并返回 Xxx
function outputDataType(data){
  let dataTypeStr = Object.prototype.toString.call(data)
  // toString返回的是[object xxx],进行字符串截取返回对应数据类型
  dataTypeStr = dataTypeStr.match(/\[object (\S*)\]/)[1]
  return dataTypeStr
}

var reslut
reslut = 24
outputDataType(reslut) // Number

reslut = '33'
outputDataType(reslut) // String

reslut = true
outputDataType(reslut) // Boolean

reslut = null
outputDataType(reslut) // Null

reslut = undefined
outputDataType(reslut) // Undefined

reslut = {}
outputDataType(reslut) // Object

reslut = new Date()
outputDataType(reslut) // Date

reslut = new RegExp()
outputDataType(reslut) // RegExp

reslut = []
outputDataType(reslut) // Array

reslut = function(){}
outputDataType(reslut) // Function

reslut = Symbol()
outputDataType(reslut) // Symbol

自此,一些针对数据类型的处理我们就能友好的判断了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值