JS基础 —— 数据类型

JS数据类型分为简单数据类型(基本数据类型)和复杂数据类型(引用数据类型)。函数

基本数据类型:Undefined、Null、Boolean、Number、String、Symbol。测试

引用数据类型:Object。prototype

能够经过typeof操做符判断以上7种数据类型,语法:typeof 变量,返回值以下:指针

- "undefined" —— 若是这个值未定义;事实上,若是这个变量未声明,返回值也是undefined
- "boolean" —— 若是这个值是布尔值
- "string" —— 若是这个值是字符串
- "number" —— 若是这个值是数值
- "object" —— 若是这个值是对象或null
- "symbol" —— 若是这个值是Symbol函数生成的
- "function" —— 若是这个值是函数

数据类型

  1. Undefined类型code

    • 只有一个值:undefined
    • 声明变量后未经初始化,则默认值是undefined;因此不必将一个变量显性地设置为undefined
  2. Null类型对象

    • 只有一个值:null
    • 空对象指针
    • undefined派生自null,因此它们的相等性测试 undefined == null 返回 true
    • 与undefined不一样的是,只要意在保存对象的变量尚未真正保存对象,就应该明确地让变量初始化为null
  3. Boolean类型blog

    • 只有两个值:true 和 false
    • 其它类型值转换为Boolean值,调用转型函数Boolean()字符串

      数据类型 转换为true值 转换为false值
      Boolean true false
      String 非空字符串 空字符串("")
      Number 非0数字值 0和NaN
      Object 任何对象 null
      Undefined undefined
  4. Number类型
    • 字面量
      • 整数
        • 十进制:ddd,d:0~9
        • 八进制: 0ddd,d:0~7。严格模式下无效,会致使支持严格模式地JS引擎抛出错误
        • 十六进制:0xddd,d:0~9及A~F(小写也能够)
      • 浮点数值
        • 合法写法
          • 1.1
          • 0.1
          • .1 --> 0.1
            1. --> 整数 1
          • 1.0 --> 整数 1
        • 极大极小值,用e表示
          • 3.125e7 --> 31250000
          • 3e-7 --> 0.0000003
        • 最大精度17位
          • 0.1 + 0.2 != 0.3
    • 数值范围
      • Number.MIN_VALUE
      • Number.MAX_VALUE
      • 超范围显示Infinity和-Infinity --> Number.POSITIVE_INFINITY和Number.NEGATIVE_INFINITY
      • 函数isFinite():参数在极小和极大之间返回true,不然false
    • NaN
      • Not a Number
      • NaN == NaN 返回 false
      • 函数isNaN():参数先被转换成Number类型,转换后的结果是NaN返回true,不然false;参数是对象,会先调用valueOf()方法,若是返回值能转换为数值,则进行测试,不然再调用toString()方法,进行测试
    • 数值转换
      • Number()原型

        数据类型 Number()转换后结果
        Boolean 1和0
        Number 无变化
        Null 0
        Undefined 0
        String 只包含数字(包括前面带正号或负号的状况)--> 十进制数值,如"-123" --> 123,"077" --> 77(不会被认为是八进制);
        有效浮点格式 --> 浮点值;
        十六进制(0x) --> 十进制数值;
        其它 --> NaN
        Object valueOf()→如果NaN(好比Object对象)→toString()→再按以上规则
      • parseInt()
        • 字符串从前日后取数字(符合整数格式),碰到非数字中止
        • 第二个参数指定进制,如8,10,16
      • parseFloat()
        • 同上(符合浮点格式)
      • 注:valueOf()
        • 对象原型方法:返回对象的原始值。
        • 查看对象的原始值办法

  5. String类型
    • 字符:16位Unicode
    • "" 或 ''
    • 转义字符:
    • 其它类型转换为String类型
      • toString()
        • Boolean、Number、String、Object都有toString()方法
        • Null、Undefined没有toString()方法
        • Object.prototype.toString.call():能够查看数据类型
      • 转型函数String()
        • 有toString()方法的调用toString()
        • null --> "null"
        • undefined --> "undefined"
    • 字符串拼接
      • 新开辟空间,拼接字符串,删除原字符串
  6. Symbol类型string

  7. Object类型
    • Object 就是一组数据和功能的集合
    • 全部对象的基础,如Function、Array、Date
    • Object每一个实例都有:constructor、hasOwnProperty(propertyName)、isPropertyOf(object)、propertyIsEnumerable(propertyName)、toLocaleString()、toString()、valueOf()

检测数据类型

  1. 操做符 typeof
    • 能检测出的类型:Undefined、Null、Boolean、Number、String、Object、Symbol和函数
  2. 操做符 instanceOf
    • 区分具体对象类型,如 [1,2,3] instanceof Array --> true ; 1 instanceof Number --> true
    • null、undefined不行
  3. 方法 constructor()

    • 同instanceof
  4. 方法 toString()
    • 能检测出的类型:全部
相关文章
相关标签/搜索