js数据类型转换

js数据类型转换

typeof

typeof的使用规则是typeof()括号里面添加值就行,能输出对应的类型,但是null只能输出为object(因为null的机器码都是0而判断对象是用后三位机器码,而对象的机器码后三位也是0)因此不能用来判断null,对于引用类型也只能输出Object,如果是Arry和Function则输出Function是因为在Object这个对象下面有一个内置属性call,当检测到是Object的内置方法时就会输出function

instanceof

这个方法时利用了原型链的思想,输出的是布尔值,不能判断一个数是否是null类型,引用对象类型输出也是Object类型的,具体源码实现看下方。而且在这个方法下null不等于Object

function myinstanceof(left,right){
    let Lproto = left.__proto__;//
    let Rproto = right.prototype;//
    while(true){                                                     
    if(!Lproto) return false;//
    if(Lproto === Rproto) return true;//
    Lproto = Lproto.__proto__;//
    }
}
console.log(myinstanceof([],Array));

判断是否是数组

可以利用数组中的isArry方法

console.log(Array.isArray([]))

也可以利用原型下的方法

可以判断任何类型

Object.prototype.toString.call(null)//输出[Object Null]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值