溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaScript 中有哪些基本數(shù)據(jù)類型

發(fā)布時(shí)間:2021-08-03 15:54:33 來源:億速云 閱讀:151 作者:Leah 欄目:編程語言

本篇文章為大家展示了JavaScript 中有哪些基本數(shù)據(jù)類型,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

首先,我們了解一下基本數(shù)據(jù)類型。

1. String

JavaScript 采用 UTF-16 編碼的 Unicode 字符集,JavaScript 中的字符串是由一組無符號(hào)的 16 位值組成的序列,最常用的 Unicode 字符都是通過 16 位的內(nèi)碼來表示的,并代表字符串中的單個(gè)字符

var p = 'π'
var e = 'e'
p.length // 1; p 包含一個(gè) 16 位值
e.length // e 通過 UTF-16 編碼之后包含兩個(gè) 16 位值:"\ud835\udc52"

只要引用了字符串的屬性,JavaScript 就會(huì)將字符串值通過new String(s)的方式轉(zhuǎn)換為對(duì)象,這個(gè)對(duì)象繼承了字符串的方法,一旦引用結(jié)束,這個(gè)新創(chuàng)建的對(duì)象就會(huì)被銷毀

var s = 'test'
s.len = 4
var t = s.len // undifined
復(fù)制代碼

第二行代碼創(chuàng)建一個(gè)臨時(shí)對(duì)象,并給這個(gè)對(duì)象的len屬性賦值,隨即銷毀這個(gè)對(duì)象,第三行代碼用的是原始的字符串值,他沒有l(wèi)en屬性,所以為undifined

在讀取字符串的屬性值時(shí),表現(xiàn)的就像對(duì)象一樣。但如果試圖給屬性賦值,則會(huì)忽略這個(gè)操作,修改只發(fā)生在臨時(shí)對(duì)象身上,而這個(gè)臨時(shí)對(duì)象并未保存下來

這個(gè)臨時(shí)對(duì)象稱之為包裝對(duì)象,字符串(還有數(shù)字和布爾值)的屬性都是只讀的,并不能賦值,有別于其他的對(duì)象

字符串是存放在堆內(nèi)存里面的,一旦創(chuàng)建就不可更改,如果想改變某個(gè)變量保存的字符串,就必須先銷毀原來的字符串,再用一個(gè)新的來填充該變量。

2. Number

在 JavaScript 里,所有與數(shù)字有關(guān)的都是 Number 類型,Number 類型又分為整數(shù)值和浮點(diǎn)數(shù)值,但是保存浮點(diǎn)數(shù)的內(nèi)存空間是保存整數(shù)的內(nèi)存空間的兩倍,所以 JavaScript 當(dāng)然不希望在寸土寸金的內(nèi)存空間里過多的存放浮點(diǎn)數(shù),有下面兩種情況會(huì)將浮點(diǎn)數(shù)轉(zhuǎn)成整數(shù):

  1. 小數(shù)點(diǎn)后面沒有跟數(shù)字,比如 1.

  2. 小數(shù)點(diǎn)后面等于 0,比如 1.00

都會(huì)轉(zhuǎn)成整數(shù) 1

在 Number 類型里還有一個(gè)值是 NaN(Not a Number),如果面試官問你該怎么判斷一個(gè)變量是不是 NaN 呢?你當(dāng)然不能答使用x == NaN,因?yàn)檫@個(gè)特殊的值與任何值都不相等,要想判斷它還得使出真功夫。有以下兩種方法可以判斷:

  1. 使用x != x來判斷,因?yàn)檫@貨連自己都不認(rèn)識(shí),只要返回 true,那就證明 x 是 NaN 無疑了

  2. JavaScript 為我們提供了函數(shù)isNaN()來方便我們

任何類型的數(shù)據(jù)與 Number 類型的數(shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算時(shí)都會(huì)被轉(zhuǎn)成數(shù)字,不能轉(zhuǎn)成數(shù)字的就是 NaN

3. Boolean

Boolean 類型沒什么好說的,就兩個(gè)值:true 和 false,但是需要注意的是在 JavaScript 中,類型轉(zhuǎn)換為我們提供了更多的可能性,現(xiàn)在就讓我們來簡單了解一下其他數(shù)據(jù)類型轉(zhuǎn)換成布爾類型。

數(shù)值類型 轉(zhuǎn)換成布爾值 undefined false null false 布爾值 true/false 數(shù)字 +0、-0 和 NaN 是 false,其他是 true 字符串 空字符串是 false,其他是 true 對(duì)象 true

JavaScript 中的任何值都可以轉(zhuǎn)換成布爾值,其中只有六個(gè)轉(zhuǎn)換為 false

4. Undefined

Undefined 類型只有一個(gè)值 undefined,這個(gè)值用來表示已聲明但未被賦值的變量。

5. Null

Null 也是只有一個(gè)值:null,用來表示空對(duì)象指針。

undefined 與 null 的區(qū)別一句話概括:undefined 表示“缺少值”,此處應(yīng)該有值,但是還未定義;null 表示沒有對(duì)象,此處不應(yīng)該有值

typeof 操作符

了解基本數(shù)據(jù)類型的時(shí)候,就不得不來了解一下 typeof 操作符,它可是我們判斷基本數(shù)據(jù)類型的一個(gè)好幫手。

typeof 用來檢測(cè)變量的數(shù)據(jù)類型,返回值一共有六個(gè)http://www.fuke029.com/

  • 'number'

  • 'string'

  • 'boolean'

  • 'object'

  • 'undefined'

  • 'function'

注意這六種都是字符串類型,如果我們寫typeof(typeof('123'))那么返回的是'string'

在 JavaScript 中,基本類型的值都是存放在棧內(nèi)存中的,變量之間的賦值都是通過拷貝進(jìn)行的,此后兩個(gè)變量再參與任何操作的時(shí)候都不會(huì)相互影響

上述內(nèi)容就是JavaScript 中有哪些基本數(shù)據(jù)類型,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI