在ES里面,基本数据类型有6个:Number(数字类型),String(字符串类型),Boolean(不布尔类型:真假类型),Null(空元素类型),Undefined(未定义类型),以及ES6新添加的Symbol(对象,象征)程序员
Undefined数据类型函数
这种数据类型就只有一个值:undefiend(未下定义的)spa
在声明了一个变量,可是没有给变量赋值的时候,该变量的值就是undefined对象
let i = ;字符串
console.log(i); //undefinedstring
若是一个变量,连声明都没有声明,那么打印这个变量会直接报错,可是若是使用typeof查看变量类型的时候却会显示出undefinedit
let i ;io
console.log(typeof i); //undefined console
console.log(typeof j); //undefinedtable
console.log(i); //undefined
console.log(j); //报错
Null数据类型
这个数据类型也只有一个值,这个值就是null,null表明就是空。Undefined能够看作是从null衍生出来
console.log(null == undefined); //ture
Boolean数据类型
中文叫作布尔值。布尔值只有两个,一个是真(true),一个是假(false)。因为在ES里面严格区分大小写,因此true和True不是同一个东西。
任何其余数据类型均可以转换为布尔类型
数据类型 | ture | false |
Number | 任何非0的数字,均可以转为ture | 数字0 |
String | 任何非空的字符串(包括引号里面有空格,或者引号里面有0) | 空字符串 |
在ES里面有一个函数能够将其余数据类型转为布尔类型:Boolean()
let i =5;
console.log( i ,typeof i); //5 number
console.log(Boolean(i) , typsof Boolean (i) ); //ture boolean
如下9个值是会被转为布尔类型里面的false:
“”:双引号空字符串
‘’:单引号空字符串
``:空字符串模板
0和-0:数字0和-0
NaN(非数值)
false
null
undefined
Number数据类型
关于数咱们能够分为两大类:一个是整数,一个是实数
整数:整数又能够分为正整数和负整数
let i =5 ;
let j = -9;
关于整数,拥有不一样的进制。不一样的进制,前面须要添加不一样的特殊符号。
二进制:0b
八进制:0
十六进制:0x
let i =0b101;
let j= 012;
let k = 0x11;
console.log(i,j,k); //5 10 17
//不管多少进制,最终使用的时候,都会被转为十进制。
实数:所谓实数,就是咱们常见的小数
关于实数的表示方法有两种:小数型,指数型
let i =3.17 ; //小数表示法
let j =9.12e -2 ; //指数表示法
console.log(i ,j);
最大值和最小值
咱们能够经过MIN_VALUE以及MAX_VALUE来查看ES里面所支持的最大值和最小值
console.log(Number. MIN_VALUE);
console.log(Number .MAX_VALUE);
后台实现效果:
5e-324;
1.7934343.....e+308;
在ES里面拥有无穷的概念,若是一个数达到2的1024次方,那么这个数就会变为infinity,与之相对的还有-infinity,若是一个数是负的2的1024次方,那么就是-infinity.
console.log( Math.pow (2,1024)); //infinity
console.log(- Math .pow (2,1024)); //-infinity
NaN类型
NaN全称为not a number,意思就是否是一个数。可是这个NaN的数据类型为number
let i =NaN;
conslo.log( typeof i); //number
当成一个标识,标识某一个数据不是一个number
涉及任何NaN的计算,都会返回NaN
let i =10 +NaN ;
console.log( i); //NaN
NaN不和任何值相等,包括本身自己
console.log(NaN==NaN); //false
console.log(NaN==NaN); //false
在ES里面专门判断是否为一个非数的函数 isNaN()
console.log( is NaN (NaN) ); //TURE
console.log( is NaN( 5) ); //false
console.log(is NaN ("5")); //FALSE
console.log( is NaN ("abc")); //true
console.log(is NaN (true)); //false
数值转换相关函数:Number() parseInt() parseFloat()
Number():将一个值转换为数值
若是是布尔值,会被转为0或者1
若是是数字,就是一个简单的返回
若是null,返回0
若是是undefined,返回NaN
关于字符串,转换规则以下:
若是字符串里面包含纯数字,就将其转为十进制,若是字符串是写做八进制”012”,这个时候只是会被单纯的转换为12,可是若是是十六进制,就会将十六进制转为十进制,二进制也能够被转换
console.log( Number(“”123“)) ; //123
console.log( Number(“”012”)) ; //12
console.log( Number(“”0xFD“)) ; //253
console.log( Number(“”0b101“)) ; //5
若是字符串里面不是纯数字,而是包含了其余字母或者字符,那么转换为NaN
console.log( Number ("123assd")); //NaN
若是是空字符串,那么转换为0
console.log( Number(" ")); //0