在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