JavaScript数据类型提升

计算机typeof检测,返回的是对应的数据类型,机器编码决定数据类型

null会返回为object是因为null机器编码是00000...000 => object

    console.log(typeof(123))    //number
    console.log(typeof('123'))  //string
    console.log(typeof(true))   //boolean
    console.log(typeof(undefined))//undefined
    console.log(typeof(Object)) //function
    console.log(typeof(null))   //object
    console.log(typeof(()=>{})) //function

typeof引用类型返回定义一个[[call]]:决定是返回object还是返回function

来看一道面试题

请告诉我你的答案是什么

var str = 'strs'
console.log('---------------')
console.log(str)
console.log(typeof('strs'))
console.log('---------------')
console.log('---------------')
var str1 = new String('strs')
console.log(str1)
console.log(typeof(str1))
console.log('---------------')

instanceof检测布尔值

instanceof 原型链 A instanceof B true , B instanceof C true

通过原型去查找

    console.log([] instanceof Array);           //true
    console.log({} instanceof Object);          //true
    console.log(new Date() instanceof Date);    //true
    function Person(){};                        //true
    console.log(new Person instanceof Person);  //true
    console.log([] instanceof Object);          //true
    console.log(new Date() instanceof Object);  //true
    console.log(new Person instanceof Object);  //true

开发中常用的方式

    console.log(Object.prototype.toString.call('检测数据类型'));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值