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

JS中一共有七大數(shù)據(jù)類型

  1. 數(shù)值
  2. 字符串
  3. 布爾值
  4. undefined
  5. null
  6. 對(duì)象
  7. symbol (本文略過)

一般將數(shù)值,字符串和布爾值視為原始類型(primitive type)。unfettered和null是JavaScript中特有的,將它們視為特殊的值。而對(duì)象是最復(fù)雜的數(shù)據(jù)類型。后文會(huì)簡(jiǎn)單介紹。

1. 數(shù)值

(1)JS中所有數(shù)字都是以64位浮點(diǎn)數(shù)形式儲(chǔ)存,整數(shù)也是如此。如遇到小數(shù)的運(yùn)算要特別小心。

(2)數(shù)值可以用科學(xué)計(jì)數(shù)法,二進(jìn)制,八進(jìn)制十進(jìn)制和十六進(jìn)制表示。
以下是四種進(jìn)制的表示方法

十進(jìn)制:沒有前導(dǎo)0的數(shù)值。
八進(jìn)制:有前綴0o或0O的數(shù)值,或者有前導(dǎo)0、且只用到0-7的八個(gè)阿拉伯?dāng)?shù)字的數(shù)值。
十六進(jìn)制:有前綴0x或0X的數(shù)值。
二進(jìn)制:有前綴0b或0B的數(shù)值。

(3)數(shù)值范圍
64位浮點(diǎn)數(shù)的指數(shù)部分的長(zhǎng)度是11個(gè)二進(jìn)制位,意味著指數(shù)部分的最大值是2047(2的11次方減1)。也就是說,64位浮點(diǎn)數(shù)的指數(shù)部分的值最大為2047,分出一半表示負(fù)數(shù),則 JavaScript 能夠表示的數(shù)值范圍為21024到2-1023(開區(qū)間),超出這個(gè)范圍的數(shù)無法表示。

(4) NaN
NaN是 JavaScript 的特殊值,表示“非數(shù)字”(Not a Number)。NaN不等于任何值,包括它本身。

(5) parseInt
此方法用于將字符串轉(zhuǎn)為整數(shù)。parseInt方法還可以接受第二個(gè)參數(shù)(2到36之間)例如

parseInt('1000', 10) // 1000

表示十進(jìn)制轉(zhuǎn)換為十進(jìn)制

(6) parseFloat
這個(gè)方法用于將一個(gè)字符串轉(zhuǎn)為浮點(diǎn)數(shù)。

(7)isNaN:
isNaN方法可以用來判斷一個(gè)值是否為NaN

2.字符串

字符串就是零個(gè)或多個(gè)排在一起的字符,放在單引號(hào)或雙引號(hào)之中。

(1) 轉(zhuǎn)義
反斜杠(\)在字符串內(nèi)有特殊含義,用來表示一些特殊字符,所以又稱為轉(zhuǎn)義符。需要用反斜杠轉(zhuǎn)義的特殊字符,主要有下面這些。

\0 :null(\u0000)
\b :后退鍵(\u0008)
\f :換頁符(\u000C)
\n :換行符(\u000A)
\r :回車鍵(\u000D)
\t :制表符(\u0009)
\v :垂直制表符(\u000B)
' :?jiǎn)我?hào)(\u0027)
" :雙引號(hào)(\u0022)
\ :反斜杠(\u005C)

(2) length屬性
length屬性返回字符串的長(zhǎng)度,該屬性也是無法改變的。

(3)字符集
avaScript 使用 Unicode 字符集。JavaScript 引擎內(nèi)部,所有字符都用 Unicode 表示。

(4)Base64 轉(zhuǎn)碼
Base64 就是一種編碼方法,可以將任意值轉(zhuǎn)成 0~9、A~Z、a-z、+和/這64個(gè)字符組成的可打印字符。使用它的主要目的,不是為了加密,而是為了不出現(xiàn)特殊字符,簡(jiǎn)化程序的處理。

3.布爾值

布爾值分為真假兩個(gè)狀態(tài),真為true,假為false
下列運(yùn)算符會(huì)返回布爾值:

兩元邏輯運(yùn)算符: && (And),|| (Or)
前置邏輯運(yùn)算符: ! (Not)

相等運(yùn)算符:===,!==,==,!=
比較運(yùn)算符:>,>=,<,<=

如果 JavaScript 預(yù)期某個(gè)位置應(yīng)該是布爾值,會(huì)將該位置上現(xiàn)有的值自動(dòng)轉(zhuǎn)為布爾值。轉(zhuǎn)換規(guī)則是除了下面六個(gè)值被轉(zhuǎn)為false,其他值都視為true。

undefined
null
false
0
NaN
""或''(空字符串)

4.null與undefined

null表示空值,即該處的值現(xiàn)在為空。調(diào)用函數(shù)時(shí),某個(gè)參數(shù)未設(shè)置任何值,這時(shí)就可以傳入null,表示該參數(shù)為空。比如,某個(gè)函數(shù)接受引擎拋出的錯(cuò)誤作為參數(shù),如果運(yùn)行過程中未出錯(cuò),那么這個(gè)參數(shù)就會(huì)傳入null,表示未發(fā)生錯(cuò)誤。
而undefined表示未定義

6.對(duì)象

對(duì)象就是一組“鍵值對(duì)”(key-value)的集合,是一種無序的復(fù)合數(shù)據(jù)集合。

對(duì)象的所有鍵名都是字符串,如果鍵名不符合標(biāo)識(shí)名的條件(比如第一個(gè)字符為數(shù)字,或者含有空格或運(yùn)算符),且也不是數(shù)字,則必須加上引號(hào),否則會(huì)報(bào)錯(cuò)。

(1) 屬性
讀取對(duì)象的屬性,有兩種方法,一種是使用點(diǎn)運(yùn)算符,還有一種是使用方括號(hào)運(yùn)算符。

var xxx= {
  y: 'Hello World'
};

xxx.y // "Hello World"
xxx['y'] // "Hello World"

點(diǎn)運(yùn)算符和方括號(hào)運(yùn)算符,不僅可以用來讀取值,還可以用來賦值。

var xxx= {};

xxx.foo= 'Hello';
obj['bar'] = 'World';

查看一個(gè)對(duì)象本身的所有屬性,可以使用Object.keys方法。

(3) delete命令
delete命令用于刪除對(duì)象的屬性,刪除成功后返回true。

var obj = { p: 1 };
Object.keys(obj) // ["p"]

delete obj.p // true
obj.p // undefined
Object.keys(obj) // []

(4) in運(yùn)算符
in運(yùn)算符用于檢查對(duì)象是否包含某個(gè)屬性(注意,檢查的是鍵名),如果包含就返回true,否則返回false。

var obj = { p: 1 };
'p' in obj // true

(5)for...in 循環(huán)
for...in循環(huán)用來遍歷一個(gè)對(duì)象的全部屬性。

var obj = {a: 1, b: 2, c: 3};

for (var i in obj) {
  console.log(obj[i]);
}
// 1
// 2
// 3
最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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