JS数据类型

 

  • ES5的时候,基本数据类型有5个:undefined,null ,number,boolean,string,ES6开始基本数据类型变为乐6个,增加了symbol
    • Undefined
      • 这种数据类型的值就只有一个:undefined,一个变量没有赋值时候。
      • 如果一个变量没有声明,打印这个变量会直接报错,但是如果使用typeof查看一个变量的数据类型会显示undefined
    • null
      • 这种数据类型也只有一个值:null,代表空,undefined可以看作是从null衍生而来的
    • boolean
      • 布尔值:truefalse
      • 由于ES里面严格区分大小写,所以Truetrue不是同一个东西
      • 任何数据类型都可以转换为布尔类型

数据类型

ture

FALSE

number

任何非0的数字,都可以转为true

如果是0,转为false

string

任何非空的字符串都可以转为true包括引号里面有空格或者是0

空字符串

  • ES里面有一个函数Boolean()可以将其他类型强制转换为布尔类型
  • 以下的值会被转换为布尔类型的false
  1. “” :双引号的空字符串
  2. ‘’ :单引号的空字符串
  3. 0-0
  4. NaN
  5. False
  6. Null
  7. Undefined
  • Number
    • 数字一般我们可以分为整数和实数
    • 整数:分为正整数和负整数
    • 关于整数,拥有不同进制,前面需添加不同的特殊符号
      • 二进制:0b
      • 八进制:0 0o
      • 十六进制: 0x
      • 无论多少进制,最终使用的时候,都被转为十进制
    • 实数(小数)
      • 小数型
      • 指数型:let a =3e2;
  • JS的最大值和最小值:
    • MIN_VALUE
    • MAX_VALUE
    • console.log(Number. MAX_VALUE);
  • ES里面存在无穷概念(21024次方)
    • 正无穷
      • 使用infinity
    • 负无穷
      • 使用-infinity
  • NaN
    • 英语全称为not a number,意思就是不是一个数。这个东西就是一个标识,代表这个变量是一个非数
    • NaN的数据类型为number
    • 涉及到任何NaN的计算,都会返回NaN
    • NaN不和任何值相等,包括它本身
    • ES里面有一个专门用来判断是否为非数的函数:isNaN()
  • 数值转换相关函数
    • Number()
      • 将一个变量转为数值
      • 如果是布尔值,转为01
      • 如果是数字,就是一个简单的返回
      • 如果是null,转为0
      • 如果undefined,转为NaN
    • parseInt()
      • 将一个变量转换为整数
      • Number()最大的区别,在于会尽可能的将能够转换的字符串转为number,必须是以数字开头
      • nullundefined转换为NaN
      • 接收第二个参数,表明前面的数据是多少进制
    • parseFloat():转为小数,和 parseInt()一样,会尽可能去保留数
  • 字符串使用Number()进行转换的规则
    • 如果是十进制的纯数字,转为十进制
    • 如果是写作0开头的八进制,会舍弃前面的0
    • 如果是十六进制和二进制,那么会正常的转为十进制
    • 如果不是纯数字,那么会转为NaN
    • 如果是空字符串,转为0
  • ES6之前,Number(), parseInt()parseFlaot()是属于全局对象的方法,但是从ES6开始,上面的方法已经被归类到Number对象
    • String
      • String 代表的是字符串。在JS里面,字符串可以使用单引号,也可以使用双引号,没有任何区别
      • 如果字符串外部使用的是双引号,那么内部就只能使用单引号;如果外部使用了双引号,内部也想使用双引号,那么可以添加转义符(\
      • 可以将其他类型类型转为字符串类型的函数:toString(),String()
        • toString()可以将nullundefined以外的数据类型转为字符串
        • String()可以将任何数据类型转为字符串
        • toString()可以传入一个参数,来指定转换数的时候转为几进制
        • 字符串和其他数据类型相加,最终得到字符串类型
        • ES6新添加了一个叫作字符串模板的东西,使用两个反引号
          • 支持多行文本
          • 可以进行变量的解析,需要将变量放入到${变量}
  • typeof:返回一个变量的数据类型,特殊类型如下:
    • console.log(typeof NaN);//number
    • console.log(typeof Infinity);//number
    • console.log(typeof null);//object
    • console.log(typeof undefined);//undefined
  • 类型转换
    • 隐式转换
      • 系统内部自动形成的转换,一般发生于不同的数据类型进行运算的时候,会进行影视转换
      • console.log(2+undefined);//number
      • console.log(2+null);//2
      • Console.log(“2”+NaN// “2NaN“
      • 影视转换成数值的时候调用Number()函数
    • 显式转换
      • 转布尔:Boolean()
      • 转数字:Number() ,parseInt(),parseFloat()
      • 转字符串:toString() String()
      • 数据转换的快捷方式
        • 转布尔:只需要在变量前面加两个!! 
        • 转数字:直接*1或/1
        • 转字符串:直接和空字符串相加
posted @ 2017-12-02 19:13  李文雯  阅读(91)  评论(0)    收藏  举报