2018-11-26紅寶書第5章引用類型總結(jié)

第五章 引用類型

  • 新對象是使用new操作符后面跟一個構(gòu)造函數(shù)來創(chuàng)建的冗疮,該函數(shù)出于創(chuàng)建新對象的目的而定義

5.1 Object類型

  • 創(chuàng)建方法:1、new 后面跟構(gòu)造函數(shù)蝌戒;2设凹、對象字面量

5.2 Array類型

  • new Array(3)創(chuàng)建包含3項的數(shù)組
  • 數(shù)組項省略或越界或訪問超出數(shù)組長度的索引,沒值的項都會保存undefined
  • length屬性不只是可讀的庵寞,可以從數(shù)組的末尾移除項或添加新項
    var colors = ["red","blue","green"];
    colors[colors.length] = 'black';
  • 當把一個值放在超出當前數(shù)組大小的位置上時狸相,數(shù)組就會重新計算其長度值,即長度值等于最后一項索引+1

常用方法:

  • Array.isArray()
  • toString()創(chuàng)建一個數(shù)組值以逗號分隔的字符串
  • join(),接收一個參數(shù)捐川,使用不同分隔符構(gòu)建拼接字符串脓鹃,默認使用逗號
  • 棧方法:
    • push()方法接收任意數(shù)量的參數(shù)赌厅,逐個添加到數(shù)組末尾倘是,返回修改后數(shù)組長度
    • pop()方法移除末尾最后一項午衰,減少length值控淡,返回移除的項
  • 隊列方法:
    • shift()癌蚁,移除數(shù)組第一項并返回該項
    • unshift("red","green")入篮,能夠在數(shù)組前端添加任意個項并返回新數(shù)組長度贾惦,多項的話從左向右推入
  • 重排序方法:
    • reverse() 方法反轉(zhuǎn)數(shù)組
    • sort() 默認按升序退腥,比較的是字符串
    • 比較數(shù)值或其他類型接收一個比較函數(shù)纯衍,接收兩個參數(shù)栋齿,如果第一個參數(shù)應該位于第二個之前則返回一個負數(shù),如果兩個參數(shù)相等則返回0襟诸,如果第一個參數(shù)應該位于第二個參數(shù)之后則返回一個正數(shù)
    // 數(shù)值比較
    function compare(value1,value2) {
      return value2- value1; // 降序
    }
    
    • 兩個方法返回值都是排序之后的數(shù)組
  • 操作方法:
    • concat() 拼接數(shù)組瓦堵,返回新數(shù)組
    • slice() 接收1或2參數(shù),返回數(shù)組切片歌亲,切片數(shù)組不包含第二個參數(shù)的索引位置菇用。如果傳入負數(shù),則用該負數(shù)+數(shù)組長度確定位置陷揪,可以實現(xiàn)從后向前切片
    • splice(起始位置惋鸥,要刪除的項數(shù),(要插入的任意數(shù)量的項))
      向數(shù)組中部插入項悍缠。始終返回一個數(shù)組卦绣,包含從原始數(shù)組刪除的項
  • 位置方法:
    • indexOf,lastIndexOf(要查找的項飞蚓,(查找起點位置索引))
      前者從數(shù)組開頭向后查找滤港,后者反之,使用全等操作符比較
      沒有找到返回-1
  • 迭代方法:
    • 每個方法接收兩個參數(shù)1.在每一項上運行的函數(shù)趴拧,2.(可選)運行該函數(shù)的作用域?qū)ο蠼ρ绊憈his值
    • 傳入的函數(shù)接收三個參數(shù):1.數(shù)組項的值山叮;2.索引;3.數(shù)組對象本身
      1. every() 該函數(shù)對每一項返回true,則返回true
      2. filter() 返回該函數(shù)會返回true項組成的數(shù)組
      3. forEach(),沒返回值
      4. map(),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組
      5. some(). 如果該函數(shù)任一項返回true添履,則返回true
  • 歸并方法
    • reduce() reduceRight(),前者從頭返后遍歷屁倔,后者反之
    • 迭代所有項,構(gòu)建一個最終返回的值
    • 接收兩個參數(shù)暮胧,每一項上調(diào)用的函數(shù)和(可選)作為歸并基礎(chǔ)的初始值
    • 第一次迭代發(fā)生在數(shù)組第二項上锐借,參數(shù)函數(shù)4個參數(shù):前一個值,當前值叔壤,索引瞎饲,數(shù)組對象。函數(shù)返回任何值都會作為第一參數(shù)自動傳給下一項

5.3 Date類型

  • Date.parse() 接收一個表示日期的字符串參數(shù)炼绘,返回相應日期毫秒數(shù)
  • Date.UTC() 同樣返回日期毫秒數(shù),但接受的是多個數(shù)值參數(shù)妄田,只有年和月俺亮,第1第2參數(shù)是必須的
  • Date.now()
  • toString(),toUTCString返回帶有時區(qū)信息的日期和時間
  • valueOf() 返回日期毫秒數(shù)

5.4RegExp類型

  • 貪婪匹配
  • g\i\m 三個標志疟呐,全局脚曾,區(qū)分大小寫,多行模式
  • 所有元字符都要轉(zhuǎn)義
  • 兩種創(chuàng)建方式:1启具、字面量形式/.../gim;2本讥、RegExp構(gòu)造函數(shù),兩個參數(shù)鲁冯,一個是要匹配的字符串模型拷沸,第二個是可選的標志字符串(要對\進行轉(zhuǎn)義 -> \\)

實例屬性

  • lastIndex: 表示開始搜索下一個匹配項的字符位置

實例方法

  • exec()
    為捕獲組設(shè)計,接收一個參數(shù)薯演,即要應用模式的字符串撞芍,返回包含第一個匹配項信息的數(shù)組,沒有匹配的情況下返回null跨扮。在數(shù)組中序无,第一項是與整個模式匹配的字符串,其他項是與模式中的捕獲組匹配的字符串
    • 每次只返回一個匹配項衡创,有g(shù)時多次調(diào)用exec都會在原字符串中繼續(xù)查找新匹配項帝嗡,沒有g(shù)則始終返回第一個匹配項信息
  • test()
    接收一個字符串參數(shù),在模式與該參數(shù)匹配的情況下返回true,否則返回false
  • toLocaleString(),toString()都會返回正則表達式字面量

構(gòu)造函數(shù)屬性

  • RegExp.input/lastMatch/lastParen/leftContext/....
  • ^和$表示匹配字符串的開頭和結(jié)尾

5.5 Function類型

  • 函數(shù)實際上是對象璃氢,是Function類型的實例
  • 函數(shù)是對象哟玷,函數(shù)名是指針

函數(shù)聲明與函數(shù)表達式

  • 解析器會率先讀取函數(shù)聲明,并使其在執(zhí)行任何代碼之前可用(可以訪問)
  • 函數(shù)表達式拔莱,則必須等到解析器執(zhí)行到它所在的代碼行
  • 函數(shù)聲明提升:即使聲明函數(shù)的代碼在調(diào)用它的代碼后面碗降,js引擎也能把函數(shù)聲明提升到頂部

函數(shù)內(nèi)部屬性

  • arguments主要用途是保存參數(shù)隘竭,但這個對象還有一個名叫callee的屬性,是一個指針讼渊,指向擁有arguments對象的函數(shù)动看,即指向這個函數(shù)自己。在遞歸調(diào)用時可以解除函數(shù)名的耦合
  • this 是調(diào)用函數(shù)的作用域爪幻,不是函數(shù)內(nèi)部的作用域
    this引用的是函數(shù)執(zhí)行的環(huán)境對象菱皆,在全局執(zhí)行就引用全局對象,在某一個對象內(nèi)部調(diào)用挨稿,就引用的是這個對象
  • 函數(shù)名只是一個包含指針的變量
  • caller
    這個屬性保存著調(diào)用當前函數(shù)的函數(shù)的引用仇轻,即誰調(diào)用了這個函數(shù)就保存誰
  • arguments.callee即函數(shù)自己,arguments.callee.caller即這個函數(shù)的調(diào)用者

函數(shù)屬性和方法

  • length :希望接收的命名參數(shù)個數(shù)
  • prototype :保存對象所有實例方法的真正所在
  • prototype不可枚舉奶甘,for in 無法發(fā)現(xiàn)
  • apply(this,參數(shù)數(shù)組)和call(this,參數(shù)1篷店,參數(shù)2,...) ,用途都是在特定作用域中調(diào)用函數(shù)臭家,實際上等于設(shè)置函數(shù)體內(nèi)this對象的值
  • call()和apply()作用相同疲陕,區(qū)別僅在于接收參數(shù)的方式不同
  • sayColor.call(obj)相當于改變了函數(shù)內(nèi)部this的值,this變成了obj
  • bind()钉赁,這個方法會創(chuàng)建一個函數(shù)實例蹄殃,其this值會被綁定到傳給bind()函數(shù)的值。var objectSayColor = sayColor.bind(o); objectSaycolor()

基本包裝類型

  • 三個:Boolean,Number,String
  • 直接訪問基本類型的變量時你踩,后臺會創(chuàng)建一個實例诅岩,只存在于一行代碼的執(zhí)行瞬間,然后立即被銷毀
  • 每次訪問都會創(chuàng)建一個新的實例
  • 所有基本包裝類型在轉(zhuǎn)換為布爾值時都是true

Number類型

  • toFixed() 方法带膜,保留小數(shù)點位數(shù)
  • toExponential() ,返回指數(shù)表示法(e表示法)
  • toPrecision(表示數(shù)值所有數(shù)字位數(shù)) 根據(jù)數(shù)值自動判斷格式

String類型

  • 常用方法:
    • charAt()吩谦、 charCodeAt()
    • slice(),substr().substring()
      都接受兩個參數(shù),第一個是子字符串開始的位置钱慢,第二個表示子字符串到哪里結(jié)束逮京。substr(),第二個參數(shù)表示返回的字符個數(shù)
    • indexOf(),lastIndexOf()束莫,從一個字符串中搜索給定字符串懒棉,沒找到返回-1,找到返回第一次出現(xiàn)索引位置
    • match(),接收一個正則表達式或RegExp對象览绿,與調(diào)用RegExp的exec()方法相同
    • search(),返回第一個匹配項索引
    • replace(正則或字符串策严,字符串或函數(shù))
    • split(),基于分隔符分隔子字符串,放到一個數(shù)組中返回
    • localeCompare()

單體內(nèi)置對象

Global對象

  • 所有全局作用域中定義的變量和函數(shù)饿敲,都是global對象的屬性
  • encodeURI(),encodeURIComponent()
  • decodeURI(),decodeURIComponent()
  • 所有原生引用類型的構(gòu)造函數(shù)妻导,都是Global對象的屬性

Math對象

  • Math.min(),max(),一組數(shù)中最大最小值
  • 求一個數(shù)組的最大最小值:Math.max.apply(Math,array);
  • Math.ceil(),floor(),round(),
  • Math.random(),返回大于等于0小于1的隨機數(shù)

值 = Math.floor(Math.random() * 可能值的總數(shù) + 第一個可能的值)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子倔韭,更是在濱河造成了極大的恐慌术浪,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寿酌,死亡現(xiàn)場離奇詭異胰苏,居然都是意外死亡,警方通過查閱死者的電腦和手機醇疼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門硕并,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秧荆,你說我怎么就攤上這事倔毙。” “怎么了乙濒?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵陕赃,是天一觀的道長。 經(jīng)常有香客問我颁股,道長凯正,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任豌蟋,我火速辦了婚禮,結(jié)果婚禮上桑滩,老公的妹妹穿的比我還像新娘梧疲。我一直安慰自己,他們只是感情好运准,可當我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布幌氮。 她就那樣靜靜地躺著,像睡著了一般胁澳。 火紅的嫁衣襯著肌膚如雪该互。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天韭畸,我揣著相機與錄音宇智,去河邊找鬼。 笑死胰丁,一個胖子當著我的面吹牛随橘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锦庸,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼机蔗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起萝嘁,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤梆掸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后牙言,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酸钦,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年嬉挡,在試婚紗的時候發(fā)現(xiàn)自己被綠了钝鸽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡庞钢,死狀恐怖拔恰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情基括,我是刑警寧澤颜懊,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站风皿,受9級特大地震影響河爹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜桐款,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一咸这、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧魔眨,春花似錦媳维、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至朋凉,卻和暖如春州丹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杂彭。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工墓毒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盖灸。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓蚁鳖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赁炎。 傳聞我的和親對象是個殘疾皇子醉箕,可洞房花燭夜當晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,219評論 0 4
  • ??引用類型的值(對象)是引用類型的一個實例讥裤。 ??在 ECMAscript 中放棒,引用類型是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)...
    霜天曉閱讀 1,044評論 0 1
  • 概要 64學時 3.5學分 章節(jié)安排 電子商務網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,146評論 0 3
  • 近來工作太忙己英,又到作業(yè)雨间螟,因回家有事沒有提前完成作業(yè),記錄下生活和工作簡況 1.上周三請假前發(fā)會議邀請本周一開新產(chǎn)...
    七樂融榮閱讀 127評論 0 0
  • 有段時間我很喜歡逛圖書館或者書店损肛,大大小小厢破、新的、舊的 建筑和裝飾各有千秋治拿,我也不會去特意注意 倒是很在意書的布局...
    光芒萬丈小飛俠閱讀 381評論 0 3