JS數(shù)據(jù)類型

-基本數(shù)據(jù)類型:結(jié)構(gòu)簡(jiǎn)單,存儲(chǔ)在棧內(nèi)存里面,操作的是值

①,’字符串 string :?'' "" 'a' "a" 'asdfdf'

??? 字符串天生自帶一個(gè)length屬性,表示字符串長(zhǎng)度(字符個(gè)數(shù))

??? 通過(guò)字符串的索引值(下標(biāo))可以訪問(wèn)字符串中指定字符 索引值范圍:0 - (length-1)

? ? var str = 'hello world!';

? ? console.log(str.length); //12

? ? console.log(str[0]);? //'h'

②,數(shù)字 number : 正數(shù) 負(fù)數(shù) 小數(shù)?NaN(not a number)

??? js小數(shù)之間運(yùn)算會(huì)有精度損失,一般應(yīng)當(dāng)避免小數(shù)之間直接運(yùn)算

? ? console.log(0.1+0.3); //? 0.30000000000004

??? NaN:(非數(shù)值):任何涉及NaN的操作都會(huì)返回NaN,NaN與任何值都不相等,包括其本身,他是數(shù)字類型

③,布爾 boolean :?true真?false假

④,null 空

1、null值表示一個(gè)空對(duì)象指針

2、如果定義的變量準(zhǔn)備在將來(lái)用于保存對(duì)象,那么最好將改變量初始化為null而不是其他值。

⑤,undefined 未定義(未初始化)

說(shuō)明:undefined值是派生自null值的,所以u(píng)ndefined==null的返回結(jié)果是true。

2-引用數(shù)據(jù)類型:結(jié)構(gòu)復(fù)雜,存儲(chǔ)在堆內(nèi)存里面,操作的是地址

對(duì)象 object?{ key1:val,key2:val}?{}空對(duì)象

數(shù)組 array?[1,2,3,'aaa']?[]空數(shù)組

數(shù)組天生自帶一個(gè)length屬性,表示數(shù)組長(zhǎng)度

通過(guò)數(shù)組的索引值(下標(biāo))可以訪問(wèn)數(shù)組中的一項(xiàng) 索引值范圍:0 - (length-1)

? ? var ary = [2,3,4,5];

? ? console.log(ary.length);? //4

? ? console.log(ary[0]); //2

正則 regExp?/^1$/

函數(shù) function?function(){ }

(二) 檢測(cè)數(shù)據(jù)類型

1-typeof 通常用來(lái)檢測(cè)基本數(shù)據(jù)類型

? null 檢測(cè)出來(lái)結(jié)果是object , 因?yàn)閚ull在js中被定義為一個(gè)空對(duì)象的引用

? []?,?{}?,/123/?檢測(cè)結(jié)果都是object

? console.log( typeof true);? //boolean

? console.log( typeof undefined);? //undefined

? console.log( typeof function(){});? //function

2-instanceof 通常用來(lái)檢測(cè)引用數(shù)據(jù)類型,判斷某個(gè)對(duì)象是否屬于某個(gè)類的實(shí)例

? console.log([] instanceof Array);? //true

? console.log(/123/ instanceof RegExp); //true

(三) 數(shù)據(jù)類型轉(zhuǎn)換

1- isNaN() 檢測(cè)一個(gè)值是否不是一個(gè)有效數(shù)字 , 是數(shù)字返回false,不是數(shù)字為true

對(duì)接收的數(shù)值,先嘗試轉(zhuǎn)換為數(shù)值,在檢測(cè)是否為非數(shù)值(隱式調(diào)用Number()方法把值轉(zhuǎn)換成number類型再判斷)

console.log(isNaN('12')); //false

console.log(isNaN(true));? //false

2- Number(); 強(qiáng)制轉(zhuǎn)換成number類型

?? Number( )可以用于任何數(shù)據(jù)類型,如果是轉(zhuǎn)換不了的話,就會(huì)是NaN

? ? console.log(Number(false));? //0

? ? console.log(Number(null));? //0

? ? console.log(Number([12]));? //12

3- parseInt(); 轉(zhuǎn)換成整型的數(shù)字?

從左到右查找數(shù)字,直到碰到非數(shù)字就停止查找,把已經(jīng)找到的數(shù)字返回

parseInt()方法首先查看位置0處的 字符,判斷它是否是個(gè)有效數(shù)字;如果不是,該方法將返回NaN,不再繼續(xù)執(zhí)行其他操作。但如果該字符是有效數(shù)字,該方法將查看位置1處的字符,進(jìn)行同樣的 測(cè)試。這一過(guò)程將持續(xù)到發(fā)現(xiàn)非有效數(shù)字的字符為止,此時(shí)parseInt()將把該字符之前的字符串轉(zhuǎn)換成數(shù)字。例如如果要把字符串 "1234blue "轉(zhuǎn)換成整數(shù),那么parseInt()將返回1234,因?yàn)楫?dāng)它檢測(cè)到字符b時(shí),就會(huì)停止檢測(cè)過(guò)程

console.log(parseInt('12px345'));? //12

4- parseFloat(); 轉(zhuǎn)換成浮點(diǎn)型的數(shù)字

比parseInt()多識(shí)別一個(gè)小數(shù)點(diǎn)

parseFloat:parseFloat()與parseInt()方法的處理方式相似,從位置0開(kāi)始查看每個(gè)字符,直到找到第一個(gè)非有效的字符為止,然后把該字 符之前的字符串轉(zhuǎn)換成數(shù)字。不過(guò),對(duì)于這個(gè)方法來(lái)說(shuō),第一個(gè)出現(xiàn)的小數(shù)點(diǎn)是有效字符。如果有兩個(gè)小數(shù)點(diǎn),第二個(gè)小數(shù)點(diǎn)將被看作無(wú)效的, parseFloat()方法會(huì)把這個(gè)小數(shù)點(diǎn)之前的字符串轉(zhuǎn)換成數(shù)字。這意味著字符串 "22.34.5 "將被解析成22.34。

console.log(parseFloat('12.5px345')); //12.5

說(shuō)明:除了第一個(gè)小數(shù)點(diǎn)外,parseFloat()與parseInt()第二個(gè)區(qū)別在于它始終會(huì)忽略前導(dǎo)0

如果字符串中包含有效的十六進(jìn)制格式,parseInt("0xf")將 "0x" 轉(zhuǎn)換為相同大小的十進(jìn)制數(shù)值,而parsefloat("0xf")只會(huì)輸出0

5- Boolean(); 轉(zhuǎn)換成布爾值

1、除了0之外的所有數(shù)字,轉(zhuǎn)換為布爾型都為true:

2、除了""之外的所有字符,包括" ",轉(zhuǎn)換為布爾型都為true

3、NaN/null/undefined轉(zhuǎn)換為布爾型都為false:

6- toString()與 String()轉(zhuǎn)換成字符串

語(yǔ)法:str.toString();

功能:將str轉(zhuǎn)換為字符串

返回值:str的一個(gè)副本

參數(shù):str是要轉(zhuǎn)換的內(nèi)容,可以使數(shù)值,布爾值,對(duì)象和字符串

說(shuō)明: toString() 不能操作null和undefined ,會(huì)報(bào)錯(cuò),在不知道要轉(zhuǎn)換的值是不是null或undefined的情況下,可以使用string()函數(shù),它能夠?qū)⑷魏晤愋偷闹缔D(zhuǎn)換為字符串。

? ? //數(shù)組串字符串:去掉括號(hào),加引號(hào) ? ? ? ? ? ? ? ?? console.log([1,2,3].toString()); // '1,2,3'

? ? //所有對(duì)象轉(zhuǎn)成字符串結(jié)果都是 '[object Object]' ? ? ? ?? console.log({name:'ujiuye'}.toString()); // '[oject Object]'

?? 可以用string()函數(shù)來(lái)把null和undefined轉(zhuǎn)換成字符串

?? console.log(String(null)); // 'null'

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.JavaScript 定義了幾種數(shù)據(jù)類型? 哪些是原始類型?哪些是復(fù)雜類型?原始類型和復(fù)雜類型的區(qū)別是什么? ...
    gigi1226閱讀 418評(píng)論 0 0
  • 數(shù)據(jù)類型: 數(shù)據(jù)類型指的就是字面量的類型 在JS中一共有六種數(shù)據(jù)類型 String 字符串 Number 數(shù)值 B...
    啊煙雨閱讀 614評(píng)論 0 0
  • JavaScript 定義了幾種數(shù)據(jù)類型?哪些是原始類型?哪些是復(fù)雜類型?原始類型和復(fù)雜類型的區(qū)別是什么? 數(shù)據(jù)類...
    Tuuu閱讀 321評(píng)論 0 0
  • JS中的數(shù)據(jù)類型 本篇博客的主題是JS數(shù)據(jù)類型,我結(jié)合了阮一峰JS教程總結(jié)出了一些問(wèn)題,方便自己日后的復(fù)習(xí)與總結(jié)。...
    憨憨二師兄閱讀 1,002評(píng)論 0 0
  • 不自信,容易相信,想當(dāng)然,易受影響,像一個(gè)原始人在探究未知地域,初始小心翼翼,而后率性而為,碰到意料之外的情況苦惱...
    李佳瞳閱讀 160評(píng)論 0 0

友情鏈接更多精彩內(nèi)容