JS数据类型
- 在ES5的时候,基本数据类型有5个:undefined,null ,number,boolean,string,从ES6开始基本数据类型变为乐6个,增加了symbol
- Undefined
- 这种数据类型的值就只有一个:undefined,一个变量没有赋值时候。
- 如果一个变量没有声明,打印这个变量会直接报错,但是如果使用typeof查看一个变量的数据类型会显示undefined
- null
- 这种数据类型也只有一个值:null,代表空,undefined可以看作是从null衍生而来的
- boolean
- 布尔值:true和false
- 由于ES里面严格区分大小写,所以True和true不是同一个东西
- 任何数据类型都可以转换为布尔类型
|
数据类型 |
ture |
FALSE |
|
number |
任何非0的数字,都可以转为true |
如果是0,转为false |
|
string |
任何非空的字符串都可以转为true包括引号里面有空格或者是0 |
空字符串 |
- 在ES里面有一个函数Boolean()可以将其他类型强制转换为布尔类型
- 以下的值会被转换为布尔类型的false
- “” :双引号的空字符串
- ‘’ :单引号的空字符串
- 0和-0
- NaN
- False
- Null
- Undefined
- Number
- 数字一般我们可以分为整数和实数
- 整数:分为正整数和负整数
- 关于整数,拥有不同进制,前面需添加不同的特殊符号
- 二进制:0b
- 八进制:0 , 0o
- 十六进制: 0x
- 无论多少进制,最终使用的时候,都被转为十进制
- 实数(小数)
- 小数型
- 指数型:let a =3e2;
- JS的最大值和最小值:
- MIN_VALUE
- MAX_VALUE
- console.log(Number. MAX_VALUE);
- 在ES里面存在无穷概念(2的1024次方)
- 正无穷
- 使用infinity
- 负无穷
- 使用-infinity
- NaN
- 英语全称为not a number,意思就是不是一个数。这个东西就是一个标识,代表这个变量是一个非数
- NaN的数据类型为number
- 涉及到任何NaN的计算,都会返回NaN
- NaN不和任何值相等,包括它本身
- 在ES里面有一个专门用来判断是否为非数的函数:isNaN()
- 数值转换相关函数
- Number()
- 将一个变量转为数值
- 如果是布尔值,转为0和1
- 如果是数字,就是一个简单的返回
- 如果是null,转为0
- 如果undefined,转为NaN
- parseInt()
- 将一个变量转换为整数
- 和Number()最大的区别,在于会尽可能的将能够转换的字符串转为number,必须是以数字开头
- null和undefined转换为NaN
- 接收第二个参数,表明前面的数据是多少进制
- parseFloat():转为小数,和 parseInt()一样,会尽可能去保留数
- 字符串使用Number()进行转换的规则
- 如果是十进制的纯数字,转为十进制
- 如果是写作0开头的八进制,会舍弃前面的0
- 如果是十六进制和二进制,那么会正常的转为十进制
- 如果不是纯数字,那么会转为NaN
- 如果是空字符串,转为0
- 在ES6之前,Number(), parseInt(),parseFlaot()是属于全局对象的方法,但是从ES6开始,上面的方法已经被归类到Number对象
- String
- String 代表的是字符串。在JS里面,字符串可以使用单引号,也可以使用双引号,没有任何区别
- 如果字符串外部使用的是双引号,那么内部就只能使用单引号;如果外部使用了双引号,内部也想使用双引号,那么可以添加转义符(\)
- 可以将其他类型类型转为字符串类型的函数:toString(),String()
- toString()可以将null和undefined以外的数据类型转为字符串
- 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
- 转字符串:直接和空字符串相加

浙公网安备 33010602011771号