(本文摘錄于阮一峰老師所寫(xiě)文章刀荒,https://wangdoc.com/javascript/basic/index.html代嗤,作個(gè)人學(xué)習(xí)使用。)
包裝對(duì)象
1缠借、“包裝對(duì)象”(wrapper)指的是與數(shù)值干毅、字符串、布爾值分別相對(duì)應(yīng)的Number泼返、String硝逢、Boolean三個(gè)原生對(duì)象。這三個(gè)原生對(duì)象可以把原始類(lèi)型的值變成(包裝成)對(duì)象。
這三個(gè)對(duì)象作為構(gòu)造函數(shù)使用(帶有new)時(shí)渠鸽,可以將原始類(lèi)型的值轉(zhuǎn)為對(duì)象叫乌;作為普通函數(shù)(工具函數(shù))使用時(shí)(不帶有new),可以將任意類(lèi)型的值徽缚,轉(zhuǎn)為原始類(lèi)型的值憨奸。
2、原始類(lèi)型與實(shí)例對(duì)象的自動(dòng)轉(zhuǎn)換凿试。
某些場(chǎng)合排宰,原始類(lèi)型的值會(huì)自動(dòng)當(dāng)作包裝對(duì)象調(diào)用,即調(diào)用包裝對(duì)象的屬性和方法红省。這時(shí)额各,JavaScript 引擎會(huì)自動(dòng)將原始類(lèi)型的值轉(zhuǎn)為包裝對(duì)象實(shí)例,并在使用后立刻銷(xiāo)毀實(shí)例吧恃。
3虾啦、除了原生的實(shí)例方法,包裝對(duì)象還可以自定義方法和屬性痕寓,供原始類(lèi)型的值直接調(diào)用傲醉。
String.prototype.double = function () {
return this.valueOf() + this.valueOf();
};
'abc'.double()
// abcabc
Boolean對(duì)象
4、Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean('') // false
Boolean(NaN) // false
Number對(duì)象
5呻率、Number對(duì)象實(shí)例方法:toString()硬毕、toFixed()、toExponential() 礼仗、toPrecision()
String對(duì)象
6吐咳、字符串對(duì)象是一個(gè)類(lèi)似數(shù)組的對(duì)象(很像數(shù)組,但不是數(shù)組)元践。字符串a(chǎn)bc對(duì)應(yīng)的字符串對(duì)象韭脊,有數(shù)值鍵(0、1单旁、2)和length屬性沪羔,所以可以像數(shù)組那樣取值。
7象浑、實(shí)例方法
Math對(duì)象
8蔫饰、Math是 JavaScript 的原生對(duì)象,提供各種數(shù)學(xué)功能愉豺。該對(duì)象不是構(gòu)造函數(shù)篓吁,不能生成實(shí)例,所有的屬性和方法都必須在Math對(duì)象上調(diào)用蚪拦。
Date對(duì)象
9杖剪、Date對(duì)象可以作為普通函數(shù)直接調(diào)用节腐,返回一個(gè)代表當(dāng)前時(shí)間的字符串。
Date還可以當(dāng)作構(gòu)造函數(shù)使用摘盆。對(duì)它使用new命令,會(huì)返回一個(gè)Date對(duì)象的實(shí)例饱苟。如果不加參數(shù)孩擂,實(shí)例代表的就是當(dāng)前時(shí)間。
(內(nèi)容很多箱熬,暫時(shí)沒(méi)有詳細(xì)學(xué)習(xí))
RegExp 對(duì)象
10类垦、正則表達(dá)式(regular expression)是一種表達(dá)文本模式(即字符串結(jié)構(gòu))的方法,有點(diǎn)像字符串的模板城须,常常用來(lái)按照“給定模式”匹配文本蚤认。比如,正則表達(dá)式給出一個(gè) Email 地址的模式糕伐,然后用它來(lái)確定一個(gè)字符串是否為 Email 地址砰琢。
新建正則表達(dá)式有兩種方法。一種是使用字面量良瞧,以斜杠表示開(kāi)始和結(jié)束陪汽。另一種是使用RegExp構(gòu)造函數(shù)。
11褥蚯、實(shí)例屬性:
一類(lèi)是修飾符相關(guān)挚冤,用于了解設(shè)置了什么修飾符。
RegExp.prototype.ignoreCase:返回一個(gè)布爾值赞庶,表示是否設(shè)置了i修飾符训挡。
RegExp.prototype.global:返回一個(gè)布爾值,表示是否設(shè)置了g修飾符歧强。
RegExp.prototype.multiline:返回一個(gè)布爾值澜薄,表示是否設(shè)置了m修飾符。
RegExp.prototype.flags:返回一個(gè)字符串誊锭,包含了已經(jīng)設(shè)置的所有修飾符表悬,按字母排序。
另一類(lèi)是與修飾符無(wú)關(guān)的屬性丧靡,主要是下面兩個(gè)蟆沫。
RegExp.prototype.lastIndex:返回一個(gè)整數(shù),表示下一次開(kāi)始搜索的位置温治。該屬性可讀寫(xiě)饭庞,但是只在進(jìn)行連續(xù)搜索時(shí)有意義。
RegExp.prototype.source:返回正則表達(dá)式的字符串形式(不包括反斜杠)熬荆,該屬性只讀舟山。
12、實(shí)例方法:
RegExp.prototype.test() //正則實(shí)例對(duì)象的test方法返回一個(gè)布爾值,表示當(dāng)前模式是否能匹配參數(shù)字符串累盗。
RegExp.prototype.exec() //正則實(shí)例對(duì)象的exec方法寒矿,用來(lái)返回匹配結(jié)果。如果發(fā)現(xiàn)匹配若债,就返回一個(gè)數(shù)組符相,成員是匹配成功的子字符串,否則返回null蠢琳。
13啊终、字符串的實(shí)例方法之中,有4種與正則表達(dá)式有關(guān)傲须。
String.prototype.match():返回一個(gè)數(shù)組蓝牲,成員是所有匹配的子字符串。
String.prototype.search():按照給定的正則表達(dá)式進(jìn)行搜索泰讽,返回一個(gè)整數(shù)例衍,表示匹配開(kāi)始的位置。
String.prototype.replace():按照給定的正則表達(dá)式進(jìn)行替換已卸,返回替換后的字符串肄渗。
String.prototype.split():按照給定規(guī)則進(jìn)行字符串分割,返回一個(gè)數(shù)組咬最,包含分割后的各個(gè)成員翎嫡。
14、匹配規(guī)則(比較復(fù)雜永乌,后面再看)
JSON對(duì)象
15惑申、JSON格式:
每個(gè) JSON 對(duì)象就是一個(gè)值,可能是一個(gè)數(shù)組或?qū)ο蟪岢部赡苁且粋€(gè)原始類(lèi)型的值圈驼。總之望几,只能是一個(gè)值绩脆,不能是兩個(gè)或更多的值。JSON 對(duì)值的類(lèi)型和格式有嚴(yán)格的規(guī)定橄抹。復(fù)合類(lèi)型的值只能是數(shù)組或?qū)ο笱テ龋荒苁呛瘮?shù)、正則表達(dá)式對(duì)象楼誓、日期對(duì)象玉锌。
(1)原始類(lèi)型的值只有四種:字符串、數(shù)值(必須以十進(jìn)制表示)疟羹、布爾值和null(不能使用NaN, Infinity, -Infinity和undefined)主守。注意禀倔,null、空數(shù)組和空對(duì)象都是合法的 JSON 值参淫。
(2)字符串必須使用雙引號(hào)表示救湖,不能使用單引號(hào)。
(3)對(duì)象的鍵名必須放在雙引號(hào)里面涎才。
(4)數(shù)組或?qū)ο笞詈笠粋€(gè)成員的后面捎谨,不能加逗號(hào)。
16憔维、JSON對(duì)象
JSON對(duì)象是 JavaScript 的原生對(duì)象,用來(lái)處理 JSON 格式數(shù)據(jù)畏邢。它有兩個(gè)靜態(tài)方法:JSON.stringify()和JSON.parse()业扒。
(1)JSON.stringify方法用于將一個(gè)值轉(zhuǎn)為 JSON 字符串。該字符串符合 JSON 格式舒萎,并且可以被JSON.parse方法還原程储。
如果對(duì)象的屬性是undefined、函數(shù)或 XML 對(duì)象臂寝,該屬性會(huì)被JSON.stringify過(guò)濾章鲤。
如果數(shù)組的成員是undefined、函數(shù)或 XML 對(duì)象咆贬,則這些值被轉(zhuǎn)成null败徊。
正則對(duì)象會(huì)被轉(zhuǎn)成空對(duì)象。
此方法可以有第二個(gè)參數(shù)(寫(xiě)一個(gè)數(shù)組掏缎,來(lái)指定需要轉(zhuǎn)成字符串的屬性皱蹦,對(duì)對(duì)象有效,對(duì)數(shù)組無(wú)效眷蜈,這個(gè)參數(shù)可以是函數(shù))
此方法可以有第三個(gè)參數(shù)(用來(lái)方便展示沪哺,增加可讀性)。
toJSON方法:如果參數(shù)對(duì)象有自定義的toJSON方法酌儒,那么JSON.stringify會(huì)使用這個(gè)方法的返回值作為參數(shù)辜妓,而忽略原對(duì)象的其他屬性。
(2)JSON.parse方法用于將 JSON 字符串轉(zhuǎn)換成對(duì)應(yīng)的值忌怎。如果傳入的字符串不是有效的 JSON 格式籍滴,JSON.parse方法將報(bào)錯(cuò)。