node .js 数据类型
在ES里面,基本数据类型有6个:Number(数字类型),String(字符串类型),Boolean(不布尔类型:真假类型),Null(空元素类型),Undefined(未定义类型),以及ES6新添加的Symbol(对象,象征)
Undefined数据类型
这种数据类型就只有一个值:undefiend(未下定义的)
在声明了一个变量,但是没有给变量赋值的时候,该变量的值就是undefined
let i = ;
console.log(i); //undefined
如果一个变量,连声明都没有声明,那么打印这个变量会直接报错,但是如果使用typeof查看变量类型的时候却会显示出undefined
let i ;
console.log(typeof i); //undefined
console.log(typeof j); //undefined
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