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

這個數據類型也只有一個值,這個值就是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));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM