上一篇文章開始講到JS的內(nèi)置對(duì)象,本篇繼續(xù)上一篇的內(nèi)容吞鸭。
4. Boolean對(duì)象
Boolean作為構(gòu)造函數(shù)和普通函數(shù)的使用有什么不同寺董?
- 作為構(gòu)造函數(shù),它主要用于生成布爾值的包裝對(duì)象實(shí)例刻剥,即生成值的類型是對(duì)象,值為布爾值
- 作為普通函數(shù),它就是一個(gè)單純的工具方法矗愧,將任意值轉(zhuǎn)為布爾值
正因?yàn)榈谝粭l,一些特殊值麦箍,Boolean對(duì)象前面加不加new,會(huì)得到完全相反的結(jié)果陶珠,必須小心挟裂。如new Boolean(false)
的值實(shí)際上是true。
5. Number對(duì)象
Number對(duì)象有哪些實(shí)例方法揍诽?
- toString: 用來(lái)將一個(gè)數(shù)值轉(zhuǎn)為字符串形式诀蓉;
注意:toString方法可以接受一個(gè)參數(shù),表示輸出的進(jìn)制暑脆。如果省略這個(gè)參數(shù)渠啤,默認(rèn)將數(shù)值先轉(zhuǎn)為十進(jìn)制,再輸出字符串添吗;否則沥曹,就根據(jù)參數(shù)指定的進(jìn)制,將一個(gè)數(shù)字轉(zhuǎn)化成某個(gè)進(jìn)制的字符串
- toFixed: 先將一個(gè)數(shù)轉(zhuǎn)為指定位數(shù)的小數(shù)碟联,然后返回這個(gè)小數(shù)對(duì)應(yīng)的字符串
注意:由于浮點(diǎn)數(shù)的原因妓美,小數(shù)5的四舍五入是不確定的
- toExponential: 將一個(gè)數(shù)轉(zhuǎn)為科學(xué)計(jì)數(shù)法形式
- toPrecision: 將一個(gè)數(shù)轉(zhuǎn)為指定位數(shù)的有效數(shù)字
6. String對(duì)象
slice和substring,substr的異同玄帕?
- slice從原字符串取出子字符串并返回部脚,不改變?cè)址?
- 第一個(gè)參數(shù)是子字符串的開始位置,第二個(gè)參數(shù)是子字符串的結(jié)束位置
- 如果省略第二個(gè)參數(shù)裤纹,則表示子字符串一直到原字符串的結(jié)束
- 如果參數(shù)是負(fù)值委刘,表示從結(jié)尾開始倒數(shù)計(jì)算的位置
- 如果第一個(gè)參數(shù)大于第二個(gè)參數(shù),slice方法返回一個(gè)空字符串
- substring從原字符串取出子字符串并返回鹰椒,不改變?cè)址?
- 第一個(gè)參數(shù)表示子字符串的開始位置锡移,第二個(gè)位置表示結(jié)束位置
- 如果省略第二個(gè)參數(shù),則表示子字符串一直到原字符串的結(jié)束
- 如果參數(shù)是負(fù)數(shù)漆际,substring方法會(huì)自動(dòng)將負(fù)數(shù)轉(zhuǎn)為0
- 如果第一個(gè)參數(shù)大于第二個(gè)參數(shù)淆珊,substring方法會(huì)自動(dòng)更換兩個(gè)參數(shù)的位置
- substr方法用于從原字符串取出子字符串并返回,不改變?cè)址?
- 第一個(gè)參數(shù)是子字符串的開始位置(從0開始計(jì)算)奸汇,第二個(gè)參數(shù)是子字符串的長(zhǎng)度
- 如果省略第二個(gè)參數(shù)施符,則表示子字符串一直到原字符串的結(jié)束
- 如果第一個(gè)參數(shù)是負(fù)數(shù),表示倒數(shù)計(jì)算的字符位置擂找。如果第二個(gè)參數(shù)是負(fù)數(shù)戳吝,將被自動(dòng)轉(zhuǎn)為0,因此會(huì)返回空字符串
// 第二個(gè)參數(shù)大于字符串的長(zhǎng)度時(shí):
'Armor'.slice(1, 7); // "rmor"
'Armor'.substring(1, 7); // "rmor"
'Armor'.substr(1, 7); // "rmor"
// 第二個(gè)參數(shù)為負(fù)數(shù)
'Armor'.slice(1, -1); // "rmo"
'Armor'.substring(1, -1); // "A"
'Armor'.substr(1, -1); // ""
// 第一個(gè)參數(shù)大于第二個(gè)參數(shù)
'Armor'.slice(3, 1); // ""
'Armor'.substring(3, 1); // "rm"
'Armor'.substr(3, 1); // "o"
7. Math對(duì)象
Math有哪些常用的靜態(tài)方法贯涎?
- Math.abs():絕對(duì)值
- Math.ceil():向上取整
- Math.floor():向下取整
- Math.max():最大值听哭, 參數(shù)為空時(shí)返回-Infinity
- Math.min():最小值, 參數(shù)為空時(shí)返回Infinity
- Math.pow():指數(shù)運(yùn)算
- Math.sqrt():平方根, 如果參數(shù)是一個(gè)負(fù)值陆盘,則返回NaN
- Math.log():自然對(duì)數(shù)
- Math.exp():e的指數(shù)
- Math.round():四舍五入
- Math.random():隨機(jī)數(shù)
8. Date對(duì)象
Date的構(gòu)造函數(shù)和普通函數(shù)的用法普筹?
- 作為普通函數(shù)直接調(diào)用,返回一個(gè)代表當(dāng)前時(shí)間的字符串隘马,即使帶有參數(shù)太防,返回的仍然是當(dāng)前時(shí)間的字符串
- 作為構(gòu)造函數(shù)使用,返回一個(gè)Date對(duì)象的實(shí)例祟霍。如果不加參數(shù)杏头,實(shí)例代表的就是當(dāng)前時(shí)間
- 參數(shù)可以是負(fù)整數(shù),代表1970年元旦之前的時(shí)間
- 只要是能被Date.parse()方法解析的字符串沸呐,都可以當(dāng)作參數(shù)
- 參數(shù)為年醇王、月、日等多個(gè)整數(shù)時(shí)崭添,年和月是不能省略的寓娩,其他參數(shù)都可以省略的
9. RegExp對(duì)象
exec 和 match 方法的異同?
- 都是用來(lái)返回匹配結(jié)果呼渣。如果發(fā)現(xiàn)匹配棘伴,就返回一個(gè)數(shù)組,成員是匹配成功的子字符串屁置,否則返回null
- exec方法的返回?cái)?shù)組還包含以下兩個(gè)屬性:
- input:整個(gè)原字符串焊夸。
- index:整個(gè)模式匹配成功的開始位置(從0開始計(jì)數(shù))。
不同:
- exec是RegExp對(duì)象的實(shí)例方法蓝角, match是字符串對(duì)象的實(shí)例方法阱穗。
- 如果正則表達(dá)式帶有g(shù)修飾符,match會(huì)一次性返回所有匹配成功的結(jié)果使鹅;而exec則可以使用多次exec方法揪阶,下一次搜索的位置從上一次匹配成功結(jié)束的位置開始,如果想完成全部匹配患朱,需要用循環(huán)鲁僚。
- 調(diào)用exec方法的正則表達(dá)式中設(shè)置了g修飾符的時(shí)候,只要手動(dòng)設(shè)置了lastIndex的值裁厅,就會(huì)從指定位置開始匹配冰沙;但lastIndex屬性對(duì)match方法無(wú)效,匹配總是從字符串的第一個(gè)字符開始
有哪些預(yù)定義模式执虹?
預(yù)定義模式指的是某些常見模式的簡(jiǎn)寫方式倦淀。
- \d 匹配0-9之間的任一數(shù)字,相當(dāng)于[0-9]声畏。
- \D 匹配所有0-9以外的字符,相當(dāng)于[^0-9]。
- \w 匹配任意的字母插龄、數(shù)字和下劃線愿棋,相當(dāng)于[A-Za-z0-9_]。
- \W 除所有字母均牢、數(shù)字和下劃線以外的字符糠雨,相當(dāng)于[^A-Za-z0-9_]。
- \s 匹配空格(包括換行符徘跪、制表符甘邀、空格符等),相等于[ \t\r\n\v\f]垮庐。
- \S 匹配非空格的字符松邪,相當(dāng)于[^ \t\r\n\v\f]。
- \b 匹配詞的邊界哨查。
- \B 匹配非詞邊界逗抑,即在詞的內(nèi)部。
10. JSON 對(duì)象
JSON 對(duì)值的類型和格式規(guī)定寒亥?
- 復(fù)合類型的值只能是數(shù)組或?qū)ο笥矢荒苁呛瘮?shù)、正則表達(dá)式對(duì)象溉奕、日期對(duì)象褂傀。
- 原始類型的值只有四種:字符串、數(shù)值(必須以十進(jìn)制表示)加勤、布爾值和null(不能使用NaN, Infinity, -Infinity和undefined)仙辟。
- 字符串必須使用雙引號(hào)表示,不能使用單引號(hào)胸竞。
- 對(duì)象的鍵名必須放在雙引號(hào)里面欺嗤。
- 數(shù)組或?qū)ο笞詈笠粋€(gè)成員的后面,不能加逗號(hào)卫枝。
JSON對(duì)象的兩個(gè)靜態(tài)方法
- JSON.stringify()
- 將一個(gè)值轉(zhuǎn)為 JSON 字符串煎饼; *注意:對(duì)于原始類型的字符串,轉(zhuǎn)換結(jié)果會(huì)帶雙引號(hào)
- 如果對(duì)象的屬性是undefined校赤、函數(shù)或 XML 對(duì)象吆玖,該屬性會(huì)被JSON.stringify過(guò)濾
- 如果數(shù)組的成員是undefined、函數(shù)或 XML 對(duì)象马篮,則這些值被轉(zhuǎn)成null
- 正則對(duì)象會(huì)被轉(zhuǎn)成空對(duì)象
- JSON.stringify方法會(huì)忽略對(duì)象不可遍歷的屬性
- JSON.parse()
- 將 JSON 字符串轉(zhuǎn)換成對(duì)應(yīng)的值
- 如果傳入的字符串不是有效的 JSON 格式沾乘,JSON.parse方法將報(bào)錯(cuò)