js数据类型判断

JS的数据类型

JS的数据类型分为以下两类

  1. 基本(原始)类型:String Number Boolean Null Undefined Symbol BigInt
  2. 引用(对象)类型:Object Array Date Function RegExp 基本包装类型

基本类型和引用类型的区别

  1. 储蓄方式不同,基本数据储存在栈内存,引用类型存储在堆内存(引入地址还是在栈内存上)
  2. 原始类型不能携带属性和方法 question

为什么字符串有length属性 ?

let a='123'
a.b=1
console.log(a.b) //undefined
console.log(a.length) //3

如上代码a是一个字符串,向a上挂b属性,打印确实undefined而s.length打印确实3。

因为let a='123'等于let a =new String(123).他被new啦就一定会返回一个对象,所以a可以被称为字符串对象,字符串被创建出来的时候,会返回携带字符串对象

所以他具备方法和属性,但是被计算机访问的时候,发现他是一个类型,就会自动delete删除,所以他就访问不到啦,所以打印a.b的时候是undefined不是报错,至于为什么a.length可以打印,只能说不会报错。不能说真的有这个属性

JS的类型判断方式

Object.prototype.toString.call()

嘎嘎厉害的判断方式,单词越长语法越牛,这个方法可以判断任何的类型,返回的是一个字符串
dd

上图所示他会返回一个字符串,但是我们只想要后面的内容,我们可以用slice方法封装一个函数

function myflag(target){
   return Object.prototype.toString.call(target).slice(8,Object.prototype.toString.call(target).length-1)
}

这样,就能得到变量类型的字符串,如下图返回’Boolean’

typeof()

这个方法用来准确判断基本类型,返回一个字符串

  • 为什么判断null会返回’object’
    • 因为null转换为二进制时全是000000···,又因为object二进制是以000开头,所以000开头的会被计算机判定为object,null也就阴差阳错的被判定成object类型了。
  • 判断引用数据类型会返回’object’,函数会返回’function’

instanceof()

判断类型为引用类型,返回一个布尔值,左侧是判断的值,右侧是数据类型

特定的判断方法

  • 数组的方法isArray()返回布尔值
  • 不合法数字isNaN(),合法数字false不合法tru



JS的类型转换

显示类型转换,人为操作

  • 转化为 Number 类型:Number() / parseFloat() / parseInt()
  • 转化为 String 类型:String() / toString()
  • 转化为 Boolean 类型: Boolean()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值