在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