美文网首页
js中typeof返回的数据类型有哪些

js中typeof返回的数据类型有哪些

作者: 落崖惊风yxy | 来源:发表于2017-07-31 17:05 被阅读0次

    对于js初学者来说,js的数据类型可以简单地区分为简单数据类型和复杂数据类型。
    简单数据类型包括以下这些:
    number:数字类型,包括整数、浮点数、特殊值(Infinity,NaN)
    string:字符串类型,字符串,需要使用双引号包裹字符串内容。
    undefined:undefined类型,就一个值undefined,表示未定义的值
    boolean:boolean类型,包括两个值true和false
    null:null。
    而复杂数据类型主要就是object了。

    还有一种划分数据类型的方式:值类型数据,引用类型数据。
    值类型数据包括number,string,Boolean,null和undefined。
    引用型数据则包括object,function,array.

    js提供了一个操作符操作符typeof()来检测数据类型 (括号可写可不写,不写的时候检测的值与typeof之间用空格隔开。)
    那么typeof的返回值返回的都是什么数据类型呢?
    如下:
    string,number,Boolean,undefined,object,function

    例如:

    QQ图片20170731171012.png

    大家有没有注意到上图圈红圈的部分?
    不管是数据划分为简单数据类型和复杂数据类型,还是划分为值类型和引用类型,null和object都不是同一类,但是typeof null的返回值却是object。难道是数据划分有误,落落在这里出现了笔误?还是……?
    其实数据划分并没有错哦,这是硬性规定的。
    那为什么会如此诡异呢?
    说起来,其实是最初的javascript实现的bug啦。

    还有其它解释吗?当然有咯!
    来,看一下原型链图:

    yuanxinglian.jpg

    还是烦请注意图上画红圈的地方!
    原型链的终点是null。
    但是,原型链上的都是Object类型的,是不应该出现非objec类型的,所以呢,哼哼,就把null也弄成了object类型。但是,数据类型的规定可是没有改的哦!null本质还是值类型的null。

    总之,记住一点,不管typeof null返回啥,null就是null。

    相关文章

      网友评论

          本文标题:js中typeof返回的数据类型有哪些

          本文链接:https://www.haomeiwen.com/subject/qjerlxtx.html