2021-03-04

数据类型

  • 7 种基本数据类型:string、number、boolean、null、undefined、symbol、bigint (基本数据类型不可变)
  • 9 种数据类型:7 种基本数据类型 + Object + Function

typeof

typeof 的唯一目的就是检查数据类型
typeof 判断类型的原理是:根据数据存储的字节码判断;js 变量的机器码的1-3位存储类型信息

  • 000:对象
  • 010: 浮点数,表示这个数据是一个双精度浮点数的引用
  • 100: 字符串
  • 110: 布尔值
  • 1: 表示这个数据是一个 31 位的有符号整型
  • null:所有机器码都是0
  • undefined: 值是 −2^30 整型(一个超出整型范围的数)

所以使用 typeof 判断 null 时,将 null 判断为对象

不要使用 typeof 检查从 Object 派生出来的结构类型(但 typeof fn === 'function'), Object 种类的合适方式是使用 instanceof 关键字

instanceof

根据原型链来判断对象是否是类的实例
instanceof 原理

function new_instance_of(leftVaule, rightVaule) { 
    let rightProto = rightVaule.prototype; // 取右表达式的 prototype 值
    leftVaule = leftVaule.__proto__; // 取左表达式的__proto__值
    while (true) {
        if (leftVaule === null) {
            return false;   
        }
        if (leftVaule === rightProto) {
            return true;    
        } 
        leftVaule = leftVaule.__proto__ 
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一,JavaScript的书写格式 1.行内脚本:写在HTML标签内部,通过一个属性节点来添加,不推荐使用,例如“...
    刘远舟阅读 474评论 0 0
  • js数据类型 js定义了6种数据类型,数值、字符串、布尔值称为原始数据类型的值即基本数据类型。将对象称为复杂类型的...
    倾国倾城的小饼干阅读 207评论 0 0
  • 面试题总分类 --------------------------------------- |--继承,封装,多...
    浪荡少年阅读 8,440评论 0 8
  • 1 - 编程语言 1.1 编程 编程:就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果...
    Scincyc阅读 284评论 0 0
  • 前端工程师吃饭的家伙,深度、广度一样都不能差。 一、JavaScript 规定了几种语言类型 7 种基本数据类型:...
    旭哥_阅读 750评论 2 1