JavaScript中的值類(lèi)型詳細(xì)介紹
計(jì)算機(jī)程序的實(shí)質(zhì)很大程度上可以說(shuō)是機(jī)器對(duì)各種信息(值)的操作與讀寫(xiě)。在JavaScript中,存在多種類(lèi)型的值,這些值分成兩大類(lèi):Primitive(基本類(lèi)型)和Object(對(duì)象)。
Primitive
JavaScript中Primitive有5種類(lèi)型:
1.Number。所有的數(shù)字,無(wú)論是整數(shù)還是小數(shù),均為Number類(lèi)型。
2.String。字符串類(lèi)型。
3.Boolean。布爾類(lèi)型,true或者false。
4.null。此類(lèi)型只有null一個(gè)值。
5.undefined。此類(lèi)型只有undefined一個(gè)值。
Object
除了Primitive,JavaScript中其它任何值均為Object(對(duì)象)。Object有以下幾種:
1.JSON鍵值對(duì)對(duì)象。如{“name”:”Bob”, “age”:42}。
2.數(shù)組(array)。如[1,4,5,7,9]。
3.函數(shù)(function)。如function(){return true;}。在JavaScript中函數(shù)有兩種存在形式:1. 可執(zhí)行代碼塊;2. 類(lèi)(Class)的構(gòu)造器(constructor)。無(wú)論是以哪種形式存在,函數(shù)(function)始終都是對(duì)象。
JS自帶全局對(duì)象
為了方便程序編寫(xiě),JavaScript自帶一個(gè)全局對(duì)象,該全局對(duì)象擁有以下7個(gè)成員變量,其類(lèi)型均為Object:
1.Math。可以通過(guò)調(diào)用Math對(duì)象的方法來(lái)完成一系列復(fù)雜的數(shù)學(xué)運(yùn)算。
2.Number??梢酝ㄟ^(guò)訪問(wèn)Number對(duì)象的成員變量來(lái)獲取一些特殊值。
3.Array。數(shù)組對(duì)象的構(gòu)造函數(shù)。
4.Function。函數(shù)對(duì)象的構(gòu)造函數(shù)。
5.Date。日期對(duì)象的構(gòu)造函數(shù)。
6.RegExp。正則表達(dá)式對(duì)象的構(gòu)造函數(shù)。
7.Error。錯(cuò)誤對(duì)象的構(gòu)造函數(shù)。
在進(jìn)行程序編寫(xiě)時(shí),由于可以直接訪問(wèn)上述7個(gè)變量,因此也可以將它們當(dāng)作全局對(duì)象來(lái)使用。
Immutable與Mutable
Primitive與Object有一個(gè)涇渭分明的特性:所有的Primitive都是Immutable的,所有的Object都是Mutable的。以String類(lèi)型為例,調(diào)用String的方法對(duì)其進(jìn)行編輯后,JavaScript會(huì)將編輯后的結(jié)果保存在一個(gè)新的String對(duì)象中,原String對(duì)象不會(huì)有任何改變:
var s = "test";
s.toUpperCase();//return a new String object "TEST"
console.log(s);//"test" -- original String s does not change
實(shí)驗(yàn)
在JavaScript中,可以通過(guò)使用typeof關(guān)鍵詞來(lái)獲取某個(gè)值的類(lèi)型。
獲取數(shù)字的類(lèi)型:
var n = 42;
console.log(typeof n);
程序輸出結(jié)果為number。
獲取字符串的類(lèi)型:
var s = "test";
console.log(typeof s);
程序輸出結(jié)果為string。
獲取布爾值的類(lèi)型:
var b = true;
console.log(typeof b);
程序輸出結(jié)果為boolean。
獲取null的類(lèi)型:
var x = null;
console.log(typeof x);
程序本應(yīng)輸出null,但實(shí)際上卻輸出object。原因在于,當(dāng)對(duì)null值使用typeof操作時(shí),程序?qū)⒎祷豲bject:這是自JavaScript第一個(gè)版本以來(lái)就存在的一個(gè)bug。在ECMAScript標(biāo)準(zhǔn)的制定過(guò)程中,就是否修復(fù)這個(gè)bug存在過(guò)一些有趣的爭(zhēng)論:http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null;最終結(jié)論為:修復(fù)該bug會(huì)給太多的網(wǎng)站帶來(lái)問(wèn)題,因此暫不修復(fù)。
獲取undefined的類(lèi)型:
var y = undefined;
console.log(typeof y);
程序輸出結(jié)果為undefined。
獲取JSON對(duì)象的類(lèi)型:
var j = {"name":"Bob", "age":42};
console.log(typeof j);
程序輸出結(jié)果為object。
獲取數(shù)組對(duì)象的類(lèi)型:
var a = [2,3,5,7,11];
console.log(typeof a);
程序輸出結(jié)果為object。
獲取函數(shù)對(duì)象的類(lèi)型:
var f = function(){return true;};
console.log(typeof f);
函數(shù)對(duì)象比較特殊,typeof操作符返回結(jié)果為function。
- JavaScript中值類(lèi)型和引用類(lèi)型的區(qū)別
- JS正則表達(dá)式匹配檢測(cè)各種數(shù)值類(lèi)型(數(shù)字驗(yàn)證)
- JavaScript基本數(shù)據(jù)類(lèi)型及值類(lèi)型和引用類(lèi)型
- javascript限制文本框輸入值類(lèi)型的方法
- JavaScript中的值類(lèi)型轉(zhuǎn)換介紹
- js中的值類(lèi)型和引用類(lèi)型小結(jié) 文字說(shuō)明與實(shí)例
- JavaScript中值類(lèi)型與引用類(lèi)型實(shí)例說(shuō)明
- JavaScript中如何判斷一個(gè)值的類(lèi)型
相關(guān)文章
Layui動(dòng)態(tài)生成select下拉選擇框不顯示的解決方法
今天小編就為大家分享一篇Layui動(dòng)態(tài)生成select下拉選擇框不顯示的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
Websocket通信協(xié)議在數(shù)字孿生中的應(yīng)用
這篇文章主要為大家介紹了Websocket通信協(xié)議在數(shù)字孿生中的應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
微信小程序scroll-view實(shí)現(xiàn)橫向滾動(dòng)和上拉加載示例
本篇文章主要介紹了微信小程序scroll-view實(shí)現(xiàn)橫向滾動(dòng)和上拉加載示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
js實(shí)現(xiàn)網(wǎng)頁(yè)定位導(dǎo)航功能
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)網(wǎng)頁(yè)定位導(dǎo)航功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
解決IE下select標(biāo)簽innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safa
在ie下面使用innerHTML來(lái)插入option選項(xiàng)的話,ie會(huì)去掉前面的<option>,并拆分成多個(gè)節(jié)點(diǎn),這樣會(huì)造成select的出錯(cuò)2010-05-05
一文教你徹底學(xué)會(huì)JavaScript手寫(xiě)防抖節(jié)流
其實(shí)防抖和節(jié)流不僅僅在面試中會(huì)讓大家手寫(xiě),在實(shí)際項(xiàng)目中也可以起到性能優(yōu)化的作用,所以還是很有必要掌握的。本文就帶大家徹底學(xué)會(huì)JavaScript手寫(xiě)防抖節(jié)流,需要的可以參考一下2022-11-11
Javascript load Page,load css,load js實(shí)現(xiàn)代碼
通過(guò)js動(dòng)態(tài)載入頁(yè)面和css或js的實(shí)現(xiàn)代碼,需要的朋友可以參考下。國(guó)外人寫(xiě)的,可以參考下。2010-03-03
有一段有意思的代碼-javascript現(xiàn)實(shí)多行信息
有一段有意思的代碼-javascript現(xiàn)實(shí)多行信息...2007-08-08

