zoukankan      html  css  js  c++  java
  • 数据类型

    原始类型

    网上很多说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 索引

  • 相关阅读:
    正则化--Lambda
    uwsgi配置cheaper模式进行自动弹性
    采集容器内存并写到excel
    通过进程id找到进程对应的容器并统计每个进程的内存占用写到excel里
    基于celery的任务管理
    基于Redis做内存管理
    uWSGI
    nginx
    服务发现
    绑核与巨页
  • 原文地址:https://www.cnblogs.com/amiezhang/p/11298363.html
Copyright © 2011-2022 走看看