JS typeof数据类型检测 day01-7

JS中的typeof是用来检测数据类型的,我们都知道JS是一门弱语言,它有个缺点,就是你在做项目的时候,一个数据经过一大推操作过后,你往往都不知道他会变成什么类型的值。所以这时候就需要用typeof来进行数据类型检测。

下面我们来看看typeof的使用方法吧,话不多说,直接上代码

   <script>
        //五大原始数据类型检测
        var u = undefined; //先声明一个undefined类型的 
        console.log(typeof u);//在终端输出查看一下
        var n = null; //声明一个unll类型
        console.log(typeof n);//在终端输出查看一下
        var num = 12; //声明一个Number类型
        console.log(typeof num);//在终端输出查看一下
        var str = "12"; //声明一个string类型
        console.log(typeof str);//在终端输出查看一下
        var bl = true; //声明一个boolean类型
        console.log(typeof n);//在终端输出查看一下
        
        //引用数据类型检测
        function fn(){};//声明一个函数,函数名:fn
        console.log(typeof fn);//在终端输出查看一下
        var array = [];//声明一个数组,数组名:array
        console.log(typeof fn);//在终端输出查看一下
        var a = {name:"小羊",age:18};//声明一个对象,对象名:a
        console.log(typeof a);//在终端输出查看一下
    </script>

输出结果:

需要注意的是:看第二个输出的,也就是null,它检测出来是一个Object对象,null 有时会被当作一种对象类型,但是这其实只是语言本身的一个 bug,因为数据类型在底层都是以二进制形式表示的,二进制的前三位为 0 会被 typeof 判定为对象类型,null为全0所以会被误判为"object"。

接下来咋们实验一个好玩的东西

    <script>
        var num = 12;
        console.log(typeof typeof num);
        console.log(typeof "asd123" / 10);
        console.log(typeof ("asd123" / 10));
        console.log(typeof typeof "asd123" / 10);
        console.log(typeof (typeof "asd123" / 10));
        console.log(typeof (typeof typeof "asd123" / 10));
    </script>

可以先猜猜这个会在终端输出什么.......

先看结果:

第一行   console.log(typeof typeof num) :

     输出的string,是因为它先执行typeof num,得到的结果字符串的"Number",然后再拿字符串去进行typeof,也就是 typeof "Number",得到的结果为String.

第二行  console.log(typeof "asd123" / 10):

    我们来看看为什么结果是NaN,这段代码它是先执行typeof "asd123",得到结果是“String”,然后再用这个结果去除以10,一个字符串除以10,它就会转化字符串为数字,而字符串"asd123"转成数字类型就是NaN,NaN和任何数计算得到的结果都是NaN,所以就会得到结果为NaN。

好啦,小羊很懒,写不动了,下面的结果有不理解的可以评论或者私信我哦。大家一起进步!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小羊羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值