您好,登錄后才能下訂單哦!
本篇文章為大家展示了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ù):
小數(shù)點(diǎn)后面沒有跟數(shù)字,比如 1.
小數(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è)特殊的值與任何值都不相等,要想判斷它還得使出真功夫。有以下兩種方法可以判斷:
使用x != x來判斷,因?yàn)檫@貨連自己都不認(rèn)識(shí),只要返回 true,那就證明 x 是 NaN 無疑了
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è)資訊頻道。
免責(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)容。