• 数据类型


    原始类型

    网上很多说JavaScript的原始(基本)数据类型答案都是错的。

    正确的是这样:

    原始(基本)数据类型6种:String,Number,Boolean,Null,Undefined,Symbol

    最新的 stage 3,有一个新的原始类型 BigInt,等到 stage 4 的时候,就正式成为 Symbol 之后的又一个原始类型。 

    ES6的官方文档是这么写的:

    对象类型

    除了原始类型都是对象类型

    知识点

    1. 原始数据类型存的是值,对象类型存的是地址

    2. typeof

      对于基本类型,typeof可以准确判断

      对于对象类型,typeof只能区分function和非function

    3. intanceof

      对于基本类型,intanceof无法做出判断(除非写成形如这样:new String('') instanceof String)

      对于对象类型,一般情况下能够准确区分,但是如果class的static function Symbol.hasInstance 被改写了,那这个class的instanceof就不一定是想要的结果了

    class Person {
        static [Symbol.hasInstance](val) {
            return typeof val === 'number'
        }
    }
    
    123 instanceof Person; // true

    4. 对象类型转原始类型

      如果有Symbol.toPrimitive,则用这个,否则依次尝试valueOf toString,如果3个方法都不能把对象转成基本类型,就报错

    5. 四则运算

      加法:如果其中一方是字符串,都转成字符串;如果其中一方,非数字、非字符串,转数字或者字符串

      加法以外:都转成数字

    6. 比较运算

      对象:通过Symbol.toPrimitive来转换

      字符串:转化为第一个字符的 unicode 索引

  • 相关阅读:
    Thymeleaf
    快速创建springBoot
    多环境的配置
    第一个SpringBoot
    shiro第三天整合jdbc
    shrio 第二天
    Python 算法集合
    张凤强-《工会固定资产管理系统的设计与实现》随笔
    李翔-《营口港资产管理系统设计与实现》随笔
    刘晶-《高校固定资产管理系统的设计与实现》随笔
  • 原文地址:https://www.cnblogs.com/amiezhang/p/11298363.html
Copyright © 2020-2023  润新知