node .js 數據類型

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數據類型

這個數據類型也只有一個值,這個值就是nullnull表明就是空。Undefined能夠看作是從null衍生出來

console.log(null == undefined);  //ture

 

Boolean數據類型

 

中文叫作布爾值。布爾值只有兩個,一個是真(true),一個是假(false)。因爲在ES裏面嚴格區分大小寫,因此trueTrue不是同一個東西。

 

任何其餘數據類型均可以轉換爲布爾類型

數據類型 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裏面擁有無窮的概念,若是一個數達到21024次方,那麼這個數就會變爲infinity,與之相對的還有-infinity,若是一個數是負的21024次方,那麼就是-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

 

 

 

// 可是,須要注意的是,雖說是儘可能轉爲數字,
// 可是必須是以數字開頭才行,若是是字母或者字符開頭,仍是會轉爲NaN
// parseInt()接受第二個參數,代表前面的數據是多少進制
// console.log(parseInt("123asd"));
// console.log(parseInt("asdsd1213"));
// console.log(parseInt("12",8));
// 和Number()函數還有一個區別,就是這個函數是將其轉爲整數
// console.log(parseInt(3.14));
// console.log(Number(3.14));
// console.log(parseFloat("3.14assa"));
// console.log(parseFloat("112",8));
// Number.isInteger():判斷一個數是否爲整數,若是是返回true,不然返回false

 

 

 

// String數據類型
// 若是字符串外部使用雙引號,那麼內部就要用單引號,反之亦然。
// 若是外部使用雙引號,內部也想使用雙引號,那麼須要添加轉義字符\
// let i ="My name is xuhao\"HOW are you\"";
// console.log(i);

 

 

// 能夠將其餘數據類型轉換爲字符
// 串類型,toString():能夠將除了null和undefined之外的數據類型轉爲字符串
// let i = 5;
// i= i.toString();
// console.log(i,typeof i);
// let j =null;
// j = j.toString();
// console.log(j,typeof j);
// 能夠傳入參數,將數字轉換爲string類型,且指定是多少進制,
// let i = 5;
// i = i.toString(2);
// console.log(i);
// let k =5;
// k=String(k);
// console.log(k,typeof k);
// let f= null;
// f =String();
// console.log(f,typeof f);

 

 

// 字符串數據類型很是的霸道,和其餘任意數據類型相加,最終獲得的都是字符
// 因此將一個非字符串數據類型快速轉爲字符串的方法就是和一個空字符串相加
// let i = 5;
// i+="";
// console.log(i, typeof i);

// ES6新添加了一個叫作字符串模板。使用兩個反引號`
// 字符串模板有兩個做用,第一個就是實現多行文本
// let i=`This
// is
// a
// dog
// `;
// console.log(i,typeof i);
// 第二個做用:能夠解析變量,
// 只須要將要解析的變量放入${}裏面就能夠解析了
// let name ="xuahao";
// let i = `my name is ${name}`;
// console.log(i);

 

 

 


// 顯式轉換:咱們程序員強制進行數據類型轉換。主要就是轉布爾,轉數字,轉字符串
// 轉布爾:Boolean()
// 轉數字:Number() parseInt() parseFloat()
// 轉字符串:toString() String()
// let i =5;
// i = Boolean();
// console.log(i,typeof i);
// i=Number();
// console.log(i,typeof i);
// i=parseInt();
// console.log(i,typeof i);
// i=parseFloat();
// console.log(i,typeof i);
// i=i.toString();
// console.log(i,typeof i);
// i=String();
// console.log(i,typeof i);


// 快捷方法:
// 轉布爾:只須要在名稱前面加一個!,若是想要轉爲和當前類型符合的布爾值,那就加兩個!!
// let i =null;
// console.log(!i,typeof !i);
// console.log(i,typeof i);
// 轉數字:*1或者/1
// let i=null;
// console.log(i*1,typeof (i*1));
// let j = undefined;
// console.log(j*1,typeof (j*1));
相關文章
相關標籤/搜索