typeof类型判断的精细讲解

1.为什么null用typeof类型判断出来的是object呢?

因为在内存中存储的所有值都是通过二进制数值进行存储的,存储对象的前几位跟null的前几位数值是相同的,typeof在转换的时候就把null当成对象进行转换了,但null是基本数据类型,并不是object;如果是function函数的,他就转化成函数。

typeof转换的细节问题:
(1).通过typeof转换后返回的都是以字符串的形式返回数值。

例:typeof(1); //=>“number”

(2).局限性:在typeof转换的时候,对象跟数组,他们是无法区分的,转换出来的都是字符串object。

typeof([]); //=>“object”
typeof({});//=>“object”

typeof转化之后一共会有6个类型:number,string,boolean,undefined,object,function。

对于es6新增的两种数据类型:Symbol,bigInt返回的都是这两种数据类型。

typeof的局限性,我们后期可以通过另外三种数据类型判断来解决。
(Object.prototype.toString.call();instanceof;construcotr)

下面赋予一道练习题:

let a = typeof typeof typeof [12,23];
console.log(a);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值