值屬性
創(chuàng)新互聯(lián)建站是一家專業(yè)提供盧氏企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、H5開(kāi)發(fā)、小程序制作等業(yè)務(wù)。10年已為盧氏眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
這部分屬性只是簡(jiǎn)單的值,它們沒(méi)有自己的屬性和方法。
全局屬性 Infinity 是一個(gè)數(shù)值,表示無(wú)窮大。
全局屬性 NaN 的值表示不是一個(gè)數(shù)字(Not-A-Number)。
全局屬性u(píng)ndefined表示原始值undefined。它是一個(gè)JavaScript的 原始數(shù)據(jù)類型 。
值 null 特指對(duì)象的值未設(shè)置。它是 JavaScript 基本類型 之一。
函數(shù)屬性
全局函數(shù)可以直接調(diào)用,不需要在調(diào)用時(shí)指定所屬對(duì)象,執(zhí)行結(jié)束后會(huì)將結(jié)果直接返回給調(diào)用者。
eval() 函數(shù)會(huì)將傳入的字符串當(dāng)做 JavaScript 代碼進(jìn)行執(zhí)行。
PS:eval會(huì)造成安全和性能方面的問(wèn)題,具體參見(jiàn)避免在不必要的情況下使用 eval。
判斷被傳入的值(非number類型將轉(zhuǎn)換為number類型)是否為有限值。
判斷被傳入的值(非number類型將轉(zhuǎn)換為number類型)是否為NaN。
PS:使用Number.isNaN()來(lái)代替更有語(yǔ)義性。
parseFloat() 函數(shù)解析一個(gè)字符串參數(shù)并返回一個(gè)浮點(diǎn)數(shù)。
PS:如果在解析過(guò)程中遇到了正負(fù)號(hào)(+或-),數(shù)字(0-9),小數(shù)點(diǎn),或者科學(xué)記數(shù)法中的指數(shù)(e或E)以外的字符,則它會(huì)忽略該字符以及之后的所有字符,返回當(dāng)前已經(jīng)解析到的浮點(diǎn)數(shù).同時(shí)參數(shù)字符串首位的空白符會(huì)被忽略.
如果第一個(gè)字符不能解析,直接返回NaN。
parseInt() 函數(shù)解析一個(gè)字符串參數(shù),并返回一個(gè)指定基數(shù)的整數(shù) (數(shù)學(xué)系統(tǒng)的基礎(chǔ))。
PS:radix一個(gè)介于2和36之間的整數(shù),表示上述字符串的基數(shù)(默認(rèn)為10)。
函數(shù)通過(guò)將特定字符的每個(gè)實(shí)例替換為一個(gè)、兩個(gè)、三或四轉(zhuǎn)義序列來(lái)對(duì)統(tǒng)一資源標(biāo)識(shí)符 (URI) 進(jìn)行編碼 (該字符的 UTF-8 編碼僅為四轉(zhuǎn)義序列)由兩個(gè) “代理” 字符組成)。
PS:encodeURI 字母、數(shù)字、;、,、/、?、:、@、&、=、+、$、-、_、.、!、~、*、'、(、)、#、之外的所有字符。
decodeURI() 函數(shù)解碼一個(gè)由encodeURI 先前創(chuàng)建的統(tǒng)一資源標(biāo)識(shí)符(URI)或類似的例程。
encodeURIComponent()是對(duì)統(tǒng)一資源標(biāo)識(shí)符(URI)的組成部分進(jìn)行編碼的方法。
PS:encodeURIComponent 轉(zhuǎn)義除了字母、數(shù)字、(、)、.、!、~、*、'、-和_之外的所有字符。
為了避免服務(wù)器收到不可預(yù)知的請(qǐng)求,對(duì)任何用戶輸入的作為URI部分的內(nèi)容你都需要用encodeURIComponent進(jìn)行轉(zhuǎn)義。
decodeURIComponent() 方法用于解碼由 encodeURIComponent 方法或者其它類似方法編碼的部分統(tǒng)一資源標(biāo)識(shí)符(URI)。
區(qū)別在于編碼的字符范圍不同。
encodeURI使用于編碼整個(gè)URI而encodeURIComponent主要query部分(當(dāng)你需要編碼URL中的參數(shù))。
簡(jiǎn)單明了區(qū)分escape、encodeURI和encodeURIComponent
Function
全局的Function對(duì)象沒(méi)有自己的屬性和方法, 但是, 因?yàn)樗旧硪彩呛瘮?shù),所以它也會(huì)通過(guò)原型鏈從Function.prototype上繼承部分屬性和方法。
定義:指明函數(shù)的形參個(gè)數(shù)(確定多少個(gè)必須要傳入的參數(shù))區(qū)別于arguments.length實(shí)參個(gè)數(shù)(確定函數(shù)被調(diào)用時(shí)的實(shí)際傳參個(gè)數(shù))。
定義:返回創(chuàng)建實(shí)例對(duì)象的 Object 構(gòu)造函數(shù)的引用。
定義:調(diào)用一個(gè)函數(shù), 其具有一個(gè)指定的this值,以及作為一個(gè)數(shù)組(或類似數(shù)組的對(duì)象)提供的參數(shù)。
參數(shù):thisArg為func函數(shù)執(zhí)行時(shí)this的指向,argsArray為類數(shù)組參數(shù)數(shù)組。
返回:調(diào)用有指定this值和參數(shù)的函數(shù)的結(jié)果。
定義:調(diào)用一個(gè)函數(shù), 其具有一個(gè)指定的this值和分別地提供的參數(shù)(參數(shù)的列表)。
參數(shù):thisArg為func函數(shù)執(zhí)行時(shí)this的指向,arg1, arg2, …為指定的參數(shù)列表。
返回:返回值是你調(diào)用的方法的返回值,若該方法沒(méi)有返回值,則返回undefined。
運(yùn)用:1.使用call方法調(diào)用父構(gòu)造函數(shù)(在一個(gè)子構(gòu)造函數(shù)中,你可以通過(guò)調(diào)用父構(gòu)造函數(shù)的call方法來(lái)實(shí)現(xiàn)繼承)
2.使用call方法調(diào)用匿名函數(shù)3.使用call方法調(diào)用函數(shù)并且指定上下文的'this'
運(yùn)用舉例
定義:調(diào)用一個(gè)函數(shù), 其具有一個(gè)指定的this值,以及作為一個(gè)數(shù)組(或類似數(shù)組的對(duì)象)提供的參數(shù)。
參數(shù):thisArg為當(dāng)綁定函數(shù)被調(diào)用時(shí),該參數(shù)會(huì)作為原函數(shù)運(yùn)行時(shí)的 this 指向,arg1、arg2…為當(dāng)綁定函數(shù)被調(diào)用時(shí),這些參數(shù)將置于實(shí)參之前傳遞給被綁定的方法。
返回:由指定的this值和初始化參數(shù)改造的原函數(shù)拷貝(返回一個(gè)函數(shù))。
運(yùn)用:1.創(chuàng)建綁定函數(shù)(顯式綁定this)2.偏函數(shù)(使一個(gè)函數(shù)擁有預(yù)設(shè)的初始參數(shù))。
運(yùn)用舉例
定義:返回一個(gè)表示當(dāng)前函數(shù)源代碼的字符串。
參數(shù):null。
返回:表示函數(shù)源代碼的一個(gè)字符串。
Number
JavaScript 的 Number 對(duì)象是經(jīng)過(guò)封裝的能讓你處理數(shù)字值的對(duì)象。
Number(),如果參數(shù)無(wú)法被轉(zhuǎn)換為數(shù)字,則返回 NaN。
兩個(gè)可表示(representable)數(shù)之間的最小間隔,在進(jìn)行計(jì)算時(shí)誤差在這個(gè)范圍內(nèi)被認(rèn)為是合理的。
JavaScript 中最大的安全整數(shù) (2^53 - 1)。
JavaScript 中最小的安全整數(shù) (-(2^53 - 1)).
能表示的最大正數(shù)。最小的負(fù)數(shù)是 -MAX_VALUE。
能表示的最小正數(shù)即最接近 0 的正數(shù) (實(shí)際上不會(huì)變成 0)。最大的負(fù)數(shù)是 -MIN_VALUE。
Not A Number.
特殊的負(fù)無(wú)窮大值,在溢出時(shí)返回該值。
特殊的正無(wú)窮大值,在溢出時(shí)返回改值。
下列方法均不會(huì)發(fā)生將String轉(zhuǎn)化為Number的過(guò)程。
定義:確定傳遞的值是否為 NaN和其類型是 Number。它是用于代替原始的全局isNaN()。
參數(shù):要被檢測(cè)是否是 NaN 的值。
返回:一個(gè)布爾值,表示給定的值是否是 NaN。
PS:該方法不同于全局的isNaN(),不會(huì)將字符串轉(zhuǎn)換為數(shù)字。
定義:用來(lái)檢測(cè)傳入的參數(shù)是否是一個(gè)有窮數(shù)(finite number)。
參數(shù):value要被檢測(cè)有窮性的值。
返回:一個(gè)布爾值表示給定的值是否是一個(gè)有窮數(shù)。
PS:和全局的 isFinite() 函數(shù)相比,這個(gè)方法不會(huì)強(qiáng)制將一個(gè)非數(shù)值的參數(shù)轉(zhuǎn)換成數(shù)值。
定義:用來(lái)判斷給定的參數(shù)是否為整數(shù)。
參數(shù):value要判斷此參數(shù)是否為整數(shù)。
返回:判斷給定值是否是整數(shù)的 Boolean 值。
定義:用來(lái)判斷傳入的參數(shù)值是否是一個(gè)“安全整數(shù)”(safe integer)。
參數(shù):testValue需要檢測(cè)的參數(shù)。
返回:一個(gè)布爾值 表示給定的值是否是一個(gè)安全整數(shù)(safe integer)。
定義:可以把一個(gè)字符串解析成浮點(diǎn)數(shù)。
參數(shù):string被解析的字符串。
返回:對(duì)應(yīng)的浮點(diǎn)數(shù)。
PS:與全局函數(shù) parseFloat()一樣。
定義:可以根據(jù)給定的進(jìn)制數(shù)的一個(gè)字符串?dāng)?shù)解析成整數(shù)。
參數(shù):string要解析的值,radix一個(gè)介于2和36之間的整數(shù)(數(shù)學(xué)系統(tǒng)的基礎(chǔ)),表示上述字符串的基數(shù)。
下列方法均返回為字符串。
定義:以指數(shù)表示法返回該數(shù)值字符串表示形式。
參數(shù):fractionDigits一個(gè)整數(shù),用來(lái)指定小數(shù)點(diǎn)后有幾位數(shù)字。
返回:一個(gè)用冪的形式 (科學(xué)記數(shù)法) 來(lái)表示Number 對(duì)象的字符串。
定義:使用定點(diǎn)表示法來(lái)格式化一個(gè)數(shù)。
參數(shù):digits小數(shù)點(diǎn)后數(shù)字的個(gè)數(shù)。
返回:所給數(shù)值的定點(diǎn)數(shù)表示法的字符串形式。
定義:以指定的精度返回該數(shù)值對(duì)象的字符串表示。
參數(shù):precision一個(gè)用來(lái)指定有效數(shù)個(gè)數(shù)的整數(shù)。
返回:以定點(diǎn)表示法或指數(shù)表示法表示的一個(gè)數(shù)值對(duì)象的字符串表示。
定義:返回這個(gè)數(shù)字在特定語(yǔ)言環(huán)境下的表示字符串。
參數(shù):locales為指定本地要使用的編號(hào)系統(tǒng),options為有下列屬性(localeMatcher、style、currency等等但存在一定的兼容性)
返回:返回一個(gè)語(yǔ)言環(huán)境下的表示字符串。
PS:通常用于格式化為某種貨幣形式。
定義:返回指定 Number 對(duì)象的字符串表示形式。
參數(shù):radix指定要用于數(shù)字到字符串的轉(zhuǎn)換的基數(shù)(從2到36)。
返回:轉(zhuǎn)換后的字符串。
定義:返回一個(gè)被 Number 對(duì)象包裝的原始值。
返回:表示指定 Number 對(duì)象的原始值的數(shù)字。
String
定義:返回使用指定的Unicode值序列創(chuàng)建的字符串。
定義:返回使用指定的代碼點(diǎn)序列創(chuàng)建的字符串,但是這個(gè)方法不能識(shí)別 32 位的 UTF-16 字符(Unicode 編號(hào)大于0xFFFF)。
templateString
是用來(lái)獲取一個(gè)模板字符串的原始字面量值的。
返回:字符串的長(zhǎng)度。
返回:第N個(gè)字符串,但不能更改。
定義:從一個(gè)字符串中返回指定index的字符,缺省參數(shù)為0。
定義:返回給定索引處字符的 UTF-16 代碼單元值的數(shù)字;如果索引超出范圍,則返回 NaN。
定義:返回 一個(gè) Unicode 編碼點(diǎn)值的非負(fù)整數(shù)。
定義:將一個(gè)或多個(gè)字符串與原字符串連接合并,形成一個(gè)新的字符串并返回。
定義:判斷一個(gè)字符串是否包含在另一個(gè)字符串中,根據(jù)情況返回true或false。
定義:用來(lái)判斷當(dāng)前字符串是否是以另外一個(gè)給定的子字符串“開(kāi)頭”的,根據(jù)判斷結(jié)果返回 true 或 false。
定義:判斷當(dāng)前字符串是否是以另外一個(gè)給定的子字符串“結(jié)尾”的,根據(jù)判斷結(jié)果返回 true 或 false。
定義:第一次出現(xiàn)的指定值的索引,開(kāi)始在Index進(jìn)行搜索,否則返回-1。
定義:返回指定值在調(diào)用該方法的字符串中最后出現(xiàn)的位置,如果沒(méi)找到則返回 -1。
定義:localeCompare() 方法返回一個(gè)數(shù)字來(lái)指示一個(gè)參考字符串是否在排序順序前面或之后或與給定字符串相同。
定義:當(dāng)一個(gè)字符串與一個(gè)正則表達(dá)式匹配時(shí), match()方法檢索匹配項(xiàng)。
定義:會(huì)按照指定的一種 Unicode 正規(guī)形式將當(dāng)前字符串正規(guī)化。
定義:會(huì)用一個(gè)字符串填充在當(dāng)前字符串之前(如果需要的話則重復(fù)填充),返回填充后達(dá)到指定長(zhǎng)度的字符串。
定義:會(huì)用一個(gè)字符串填充在當(dāng)前字符串之后(如果需要的話則重復(fù)填充),返回填充后達(dá)到指定長(zhǎng)度的字符串。
定義:返回一個(gè)新字符串,該字符串包含被連接在一起的指定數(shù)量的字符串的副本。
PS:參數(shù)從零開(kāi)始。
定義:返回一個(gè)由替換值替換一些或所有匹配的模式后的新字符串。
如果第一個(gè)參數(shù)為regexp第二個(gè)參數(shù)為function時(shí),該函數(shù)參數(shù)說(shuō)明
參數(shù)1:匹配模式的字符串。
參數(shù)2–:子表達(dá)是匹配的子字符串(就是捕獲分組)。
倒數(shù)參數(shù)2:聲明匹配在string中出現(xiàn)的位置。
倒數(shù)參數(shù)1:進(jìn)行匹配的sting本身。
定義:行正則表達(dá)式和 String對(duì)象之間的一個(gè)搜索匹配。
返回:如果匹配成功,則 search() 返回正則表達(dá)式在字符串中首次匹配項(xiàng)的索引。否則,返回 -1。
定義:提取一個(gè)字符串的一部分,并返回一新的字符串。
參數(shù):beginSlice從該索引(以 0 為基數(shù))處開(kāi)始提取原字符串中的字符。如果值為負(fù)數(shù),會(huì)被當(dāng)做 sourceLength + beginSlice 看待,這里的sourceLength 是字符串的長(zhǎng)度。
endSlice在該索引(以 0 為基數(shù))處結(jié)束提取字符串,同樣可為負(fù)數(shù)。
定義:使用指定的分隔符字符串將一個(gè)String對(duì)象分割成字符串?dāng)?shù)組,以將字符串分隔為子字符串,以確定每個(gè)拆分的位置。
定義:返回一個(gè)字符串中從指定位置開(kāi)始到指定字符數(shù)的字符。
PS:start >=str.length 或 length <= 0 返回空字符串;start < 0 則轉(zhuǎn)換為start + str.length。
定義:返回一個(gè)字符串在開(kāi)始索引到結(jié)束索引之間的一個(gè)子集, 或從開(kāi)始索引直到字符串的末尾的一個(gè)子集。
PS:一些特殊情況。
如果 indexStart 等于 indexEnd,substring 返回一個(gè)空字符串。
如果省略 indexEnd,substring 提取字符一直到字符串末尾。
如果任一參數(shù)小于 0 或?yàn)?NaN,則被當(dāng)作 0。
如果任一參數(shù)大于 stringName.length,則被當(dāng)作 stringName.length。
如果 indexStart 大于 indexEnd,則 substring 的執(zhí)行效果就像兩個(gè)參數(shù)調(diào)換了一樣。
定義:將調(diào)用該方法的字符串值轉(zhuǎn)為小寫形式,并返回新字符串。
定義:將調(diào)用該方法的字符串值轉(zhuǎn)換為大寫形式,并返回新字符串。
定義:根據(jù)任何特定于語(yǔ)言環(huán)境的案例映射,返回調(diào)用字符串值轉(zhuǎn)換為小寫的值。
PS:在大多數(shù)情況下,該方法產(chǎn)生的結(jié)果和調(diào)用toLowerCase()的結(jié)果相同(除土耳其等)。
定義:使用本地化(locale-specific)的大小寫映射規(guī)則將輸入的字符串轉(zhuǎn)化成大寫形式并返回結(jié)果字符串。
定義:返回指定對(duì)象的字符串形式。
定義:會(huì)從一個(gè)字符串的兩端刪除空白字符,返回一個(gè)新的字符串。
PS:str.trimLeft() 和 str.trimRight() 不是標(biāo)準(zhǔn)方法。
返回一個(gè)新的Iterator對(duì)象,它遍歷字符串的代碼點(diǎn),返回每一個(gè)代碼點(diǎn)的字符串值。
PS:下列內(nèi)置類型擁有默認(rèn)迭代器行為Array、String、Set、Map等,而Object沒(méi)有。
Array
在 ES2015 中, Class 語(yǔ)法允許我們?yōu)閮?nèi)置類型(比如 Array)和自定義類新建子類(比如叫 SubArray)。這些子類也會(huì)繼承父類的靜態(tài)方法,比如 SubArray.from(),調(diào)用該方法后會(huì)返回子類 SubArray 的一個(gè)實(shí)例,而不是 Array 的實(shí)例。
定義:從一個(gè)類似數(shù)組或可迭代對(duì)象中創(chuàng)建一個(gè)新的數(shù)組實(shí)例。
參數(shù):
arrayLike想要轉(zhuǎn)換成數(shù)組的偽數(shù)組對(duì)象或可迭代對(duì)象。
mapFn (可選參數(shù))如果指定了該參數(shù),新數(shù)組中的每個(gè)元素會(huì)執(zhí)行該回調(diào)函數(shù)。
thisArg (可選參數(shù))可選參數(shù),執(zhí)行回調(diào)函數(shù) mapFn 時(shí) this 對(duì)象。
返回:一個(gè)新的數(shù)組。
PS:Array.from(obj, mapFn, thisArg) 就相當(dāng)于 Array.from(obj).map(mapFn, thisArg),ES6之前的做法:Array.prototype.slice.call(arrayLike)。
定義:確定傳遞的值是否是一個(gè) Array。
返回:boolean。
PS:ES6之前的做法Object.prototype.toString.call(arg) === ‘[object Array]'。
定義:創(chuàng)建一個(gè)具有可變數(shù)量參數(shù)的新數(shù)組實(shí)例,而不考慮參數(shù)的數(shù)量或類型。
參數(shù):任意個(gè)參數(shù),將按順序成為返回?cái)?shù)組中的元素。
返回:參數(shù)列表組成的數(shù)組。
PS:Array.of() 和 Array 構(gòu)造函數(shù)之間的區(qū)別在于處理整數(shù)參數(shù):Array.of(7) 創(chuàng)建一個(gè)具有單個(gè)元素 7 的數(shù)組,而 Array(7) 創(chuàng)建一個(gè)包含 7 個(gè) undefined 元素的數(shù)組。
返回:讀寫數(shù)組的長(zhǎng)度。
定義:淺復(fù)制數(shù)組的一部分到同一數(shù)組中的另一個(gè)位置,并返回它,而不修改其大小。
參數(shù):
target 0 為基底的索引,復(fù)制序列到該位置。如果是負(fù)數(shù),target 將從末尾開(kāi)始計(jì)算。如果 target 大于等于 arr.length,將會(huì)不發(fā)生拷貝。如果 target 在 start 之后,復(fù)制的序列將被修改以符合 arr.length。
start 0 為基底的索引,開(kāi)始復(fù)制元素的起始位置。如果是負(fù)數(shù),start 將從末尾開(kāi)始計(jì)算。如果 start 被忽略,copyWithin 將會(huì)從0開(kāi)始復(fù)制。
end 0 為基底的索引,開(kāi)始復(fù)制元素的結(jié)束位置。copyWithin 將會(huì)拷貝到該位置,但不包括 end 這個(gè)位置的元素。如果是負(fù)數(shù), end 將從末尾開(kāi)始計(jì)算。如果 end 被忽略,copyWithin 將會(huì)復(fù)制到 arr.length。
返回值:操作原數(shù)組。
定義:用一個(gè)固定值填充一個(gè)數(shù)組中從起始索引到終止索引內(nèi)的全部元素。
參數(shù):
value 用來(lái)填充數(shù)組元素的值。
start 開(kāi)始索引,默認(rèn)為0。
end 結(jié)束索引,默認(rèn)為arr.length(不包括)。
返回:修改后的數(shù)組。
定義:將一個(gè)或多個(gè)元素添加到數(shù)組的末尾,并返回新數(shù)組的長(zhǎng)度。
參數(shù):
elementN 被添加到數(shù)組末尾的元素。
返回:操作后的數(shù)組的長(zhǎng)度。
定義:從數(shù)組中刪除最后一個(gè)元素,并返回該元素的值。此方法更改數(shù)組的長(zhǎng)度。
返回:從數(shù)組中刪除的元素(當(dāng)數(shù)組為空時(shí)返回undefined)。
定義:將數(shù)組中元素的位置顛倒。
返回:顛倒數(shù)組中元素的位置,并返回該數(shù)組的引用。
定義:可以根據(jù)指定方法對(duì)數(shù)組進(jìn)行排序。
compareFunction 可選。用來(lái)指定按某種順序進(jìn)行排列的函數(shù)。如果省略,元素按照轉(zhuǎn)換為的字符串的各個(gè)字符的Unicode位點(diǎn)進(jìn)行排序。
返回:返回排序后的數(shù)組。原數(shù)組已經(jīng)被排序后的數(shù)組代替。
定義:從數(shù)組中刪除第一個(gè)元素,并返回該元素的值。此方法更改數(shù)組的長(zhǎng)度。
返回:從數(shù)組中刪除的元素; 如果數(shù)組為空則返回undefined。
定義:將一個(gè)或多個(gè)元素添加到數(shù)組的開(kāi)頭,并返回新數(shù)組的長(zhǎng)度。
參數(shù):element1, …, elementN 要添加到數(shù)組開(kāi)頭的元素。
返回:當(dāng)一個(gè)對(duì)象調(diào)用該方法時(shí),返回其 length 屬性值。
定義:通過(guò)刪除現(xiàn)有元素和/或添加新元素來(lái)更改一個(gè)數(shù)組的內(nèi)容。
參數(shù):
start 開(kāi)始修改的位置。
deleteCount 移除數(shù)組元素的個(gè)數(shù)。
item1、item2…為添加的元素。
返回:由被刪除的元素組成的一個(gè)數(shù)組。如果只刪除了一個(gè)元素,則返回只包含一個(gè)元素的數(shù)組。如果沒(méi)有刪除元素,則返回空數(shù)組。
定義:用于合并兩個(gè)或多個(gè)數(shù)組。此方法不會(huì)更改現(xiàn)有數(shù)組,而是返回一個(gè)新數(shù)組。
參數(shù):valueN 將數(shù)組和/或值連接成新數(shù)組。
返回:新數(shù)組。
定義:用來(lái)判斷一個(gè)數(shù)組是否包含一個(gè)指定的值,根據(jù)情況,如果包含則返回 true,否則返回false。
參數(shù):
searchElement 需要查找的元素值。
fromIndex 從該索引處開(kāi)始查找 searchElement。
返回:boolean。
定義:將一個(gè)數(shù)組(或一個(gè)類數(shù)組對(duì)象)的所有元素連接成一個(gè)字符串并返回這個(gè)字符串。
參數(shù):
searchElement 需要查找的元素值。
fromIndex 從該索引處開(kāi)始查找 searchElement。
返回:string。
定義:返回一個(gè)從開(kāi)始到結(jié)束(不包括結(jié)束)選擇的數(shù)組的一部分淺拷貝到一個(gè)新數(shù)組對(duì)象。
返回:一個(gè)含有提取元素的新數(shù)組。
定義:返回在數(shù)組中可以找到一個(gè)給定元素的第一個(gè)索引,如果不存在,則返回-1。
返回:首個(gè)被找到的元素在數(shù)組中的索引位置; 若沒(méi)有找到則返回 -1。
定義:返回在數(shù)組中可以找到一個(gè)給定元素的第一個(gè)索引,如果不存在,則返回-1。
返回:數(shù)組中最后一個(gè)元素的索引,如未找到返回-1。
定義:返回一個(gè)字符串,表示指定的數(shù)組及其元素。
返回:逗號(hào)分隔的字符串。
定義:對(duì)數(shù)組的每個(gè)元素執(zhí)行一次提供的函數(shù)。
返回:undefined。
PS:沒(méi)有辦法中止或者跳出 forEach 循環(huán),需要跳出請(qǐng)使用循環(huán)代替。
已刪除(使用delete方法等情況)或者未初始化的項(xiàng)將被跳過(guò)(但不會(huì)跳過(guò)那些值為 undefined、null 的項(xiàng))。
定義:創(chuàng)建一個(gè)新數(shù)組,其結(jié)果是該數(shù)組中的每個(gè)元素都調(diào)用一個(gè)提供的函數(shù)后返回的結(jié)果。
返回:一個(gè)新數(shù)組,每個(gè)元素都是回調(diào)函數(shù)的結(jié)果。
定義:返回一個(gè)新的Array迭代器,它包含數(shù)組中每個(gè)索引的鍵。
返回:一個(gè)新的 Array 迭代器對(duì)象。
定義:返回一個(gè)新的 Array Iterator 對(duì)象,該對(duì)象包含數(shù)組每個(gè)索引的值。
返回:一個(gè)新的 Array 迭代器對(duì)象。
定義:返回一個(gè)新的Array Iterator對(duì)象,該對(duì)象包含數(shù)組中每個(gè)索引的鍵/值對(duì)。
返回:一個(gè)新的 Array 迭代器對(duì)象。
定義:測(cè)試數(shù)組的所有元素是否都通過(guò)了指定函數(shù)的測(cè)試。
返回:boolean。
定義:測(cè)試數(shù)組中的某些元素是否通過(guò)由提供的函數(shù)實(shí)現(xiàn)的測(cè)試。
返回:boolean。
定義:創(chuàng)建一個(gè)新數(shù)組, 其包含通過(guò)所提供函數(shù)實(shí)現(xiàn)的測(cè)試的所有元素。
返回:新數(shù)組。
定義:返回?cái)?shù)組中滿足提供的測(cè)試函數(shù)的第一個(gè)元素的索引。否則返回-1。
返回:當(dāng)某個(gè)元素通過(guò) callback 的測(cè)試時(shí),返回?cái)?shù)組中的一個(gè)值的索引,否則返回 -1。
定義:返回?cái)?shù)組中滿足提供的測(cè)試函數(shù)的第一個(gè)元素的值。否則返回 undefined。
返回:當(dāng)某個(gè)元素通過(guò) callback 的測(cè)試時(shí),返回?cái)?shù)組中的一個(gè)值,否則返回 undefined。
定義:對(duì)累加器和數(shù)組中的每個(gè)元素(從左到右)應(yīng)用一個(gè)函數(shù),將其減少為單個(gè)值。
參數(shù):
callback 執(zhí)行數(shù)組中每個(gè)值的函數(shù),包含四個(gè)參數(shù):
accumulato 累加器累加回調(diào)的返回值; 它是上一次調(diào)用回調(diào)時(shí)返回的累積值,或initialValue(如下所示)。
currentValue 數(shù)組中正在處理的元素。
currentIndex可選 數(shù)組中正在處理的當(dāng)前元素的索引。 如果提供了initialValue,則索引號(hào)為0,否則為索引為1。
array可選 調(diào)用reduce的數(shù)組。
initialValue 可選用作第一個(gè)調(diào)用 callback的第一個(gè)參數(shù)的值。 如果沒(méi)有提供初始值,則將使用數(shù)組中的第一個(gè)元素。 在沒(méi)有初始值的空數(shù)組上調(diào)用 reduce 將報(bào)錯(cuò)。
返回:函數(shù)累計(jì)處理的結(jié)果。
定義:接受一個(gè)函數(shù)作為累加器(accumulator)和數(shù)組的每個(gè)值(從右到左)將其減少為單個(gè)值。
定義:默認(rèn)為數(shù)組不說(shuō)了迭代器,@@iterator 屬性和 values() 屬性的初始值均為同一個(gè)函數(shù)對(duì)象。
返回:數(shù)組的 iterator 方法,默認(rèn)情況下與 values() 返回值相同。
定義:會(huì)遞歸到指定深度將所有子數(shù)組連接,并返回一個(gè)新數(shù)組。
參數(shù):depth 可選指定嵌套數(shù)組中的結(jié)構(gòu)深度,默認(rèn)值為1。
返回:一個(gè)將子數(shù)組連接的新數(shù)組。
定義:首先使用映射函數(shù)映射每個(gè)元素,然后將結(jié)果壓縮成一個(gè)新數(shù)組。它與 map 和 深度值1的 flatten 幾乎相同,但flatMap通常在合并成一種方法的效率稍微高一些。
返回:一個(gè)新的數(shù)組,其中每個(gè)元素都是回調(diào)函數(shù)的結(jié)果,并且結(jié)構(gòu)深度 depth 值為1。
Proxy && Reflect
Proxy是一個(gè)構(gòu)造函數(shù)(對(duì)對(duì)象的訪問(wèn)進(jìn)行攔截),Reflect(操作對(duì)象提供的API)。
Reflect它與Proxy對(duì)象的方法是一一對(duì)應(yīng)的,這就讓Proxy對(duì)象可以方便地調(diào)用對(duì)應(yīng)的Reflect方法,完成默認(rèn)行為,作為修改行為的基礎(chǔ)。
Proxy 用于修改某些操作的默認(rèn)行為,等同于在語(yǔ)言層面做出修改,所以屬于一種“元編程”(meta programming),即對(duì)編程語(yǔ)言進(jìn)行編程。
Proxy 可以理解成,在目標(biāo)對(duì)象之前架設(shè)一層“攔截”,外界對(duì)該對(duì)象的訪問(wèn),都必須先通過(guò)這層攔截,因此提供了一種機(jī)制,可以對(duì)外界的訪問(wèn)進(jìn)行過(guò)濾和改寫。
Proxy方法:target參數(shù)表示所要攔截的目標(biāo)對(duì)象,handler參數(shù)也是一個(gè)對(duì)象,用來(lái)定制攔截行為 var proxy = new Proxy(target, handler); var person = { name: "張三" }; var proxy = new Proxy(person, { get: function(target, property) { if (property in target) { return target[property]; } else { throw new ReferenceError("Property \"" + property + "\" does not exist."); } } }); proxy.name // "張三" proxy.age // 拋出一個(gè)錯(cuò)誤
Proxy使用詳解
Reflect
將Object對(duì)象的一些明顯屬于語(yǔ)言內(nèi)部的方法(比如Object.defineProperty),放到Reflect對(duì)象上?,F(xiàn)階段,某些方法同時(shí)在Object和Reflect對(duì)象上部署,未來(lái)的新方法將只部署在Reflect對(duì)象上。也就是說(shuō),從Reflect對(duì)象上可以拿到語(yǔ)言內(nèi)部的方法。
// 下列方法說(shuō)明:target為目標(biāo)對(duì)象,name為某個(gè)屬性,receiver為如果name屬性設(shè)置了賦值函數(shù),則為函數(shù)的this指向
Reflect.apply(target, thisArg, args)
Reflect.apply方法等同于Function.prototype.apply.call(func, thisArg, args),用于綁定this對(duì)象后執(zhí)行給定函數(shù)。
Reflect.construct(target, args)
Reflect.construct方法等同于new target(…args),這提供了一種不使用new,來(lái)調(diào)用構(gòu)造函數(shù)的方法。
Reflect.get(target, name, receiver)
Reflect.get方法查找并返回target對(duì)象的name屬性,如果沒(méi)有該屬性,則返回undefined。
Reflect.set(target, name, value, receiver)
Reflect.set方法設(shè)置target對(duì)象的name屬性等于value。
Reflect.defineProperty(target, name, desc)
Reflect.defineProperty方法基本等同于Object.defineProperty,用來(lái)為對(duì)象定義屬性。未來(lái),后者會(huì)被逐漸廢除,請(qǐng)從現(xiàn)在開(kāi)始就使用Reflect.defineProperty代替它。
Reflect.deleteProperty(target, name)
Reflect.deleteProperty方法等同于delete obj[name],用于刪除對(duì)象的屬性。
Reflect.has(target, name)
Reflect.has方法對(duì)應(yīng)name in obj里面的in運(yùn)算符。
Reflect.ownKeys(target)
Reflect.ownKeys方法用于返回對(duì)象的所有屬性,基本等同于Object.getOwnPropertyNames與Object.getOwnPropertySymbols之和。
Reflect.isExtensible(target)
Reflect.isExtensible方法對(duì)應(yīng)Object.isExtensible,返回一個(gè)布爾值,表示當(dāng)前對(duì)象是否可擴(kuò)展。
Reflect.preventExtensions(target)
Reflect.preventExtensions對(duì)應(yīng)Object.preventExtensions方法,用于讓一個(gè)對(duì)象變?yōu)椴豢蓴U(kuò)展。它返回一個(gè)布爾值,表示是否操作成功。
Reflect.getOwnPropertyDescriptor(target, name)
Reflect.getOwnPropertyDescriptor基本等同于Object.getOwnPropertyDescriptor,用于得到指定屬性的描述對(duì)象,將來(lái)會(huì)替代掉后者。
Reflect.getPrototypeOf(target)
Reflect.getPrototypeOf方法用于讀取對(duì)象的proto屬性,對(duì)應(yīng)Object.getPrototypeOf(obj)。
Reflect.setPrototypeOf(target, prototype)
Reflect.setPrototypeOf方法用于設(shè)置對(duì)象的proto屬性,返回第一個(gè)參數(shù)對(duì)象,對(duì)應(yīng)Object.setPrototypeOf(obj, newProto)。
Event
Event接口表示在DOM中發(fā)生的任何事件; 一些是用戶生成的(例如鼠標(biāo)或鍵盤事件),而其他由API生成(例如指示動(dòng)畫已經(jīng)完成運(yùn)行的事件,視頻已被暫停等等)。有許多類型的事件,其中一些使用基于主要事件接口的其他接口。事件本身包含所有事件通用的屬性和方法。
定義:用來(lái)表示該事件是否在DOM中冒泡的boolean值。
定義:獲取或設(shè)置當(dāng)前事件是否要取消冒泡(使用e.stopPropagation()代替)。
定義:表示這個(gè)事件是否可以取消默認(rèn)行為(阻止默認(rèn)行為e.preventDefault())。
定義:表示該事件是否可以Shadow DOM 傳遞到一般的 DOM。
定義:當(dāng)前注冊(cè)事件的對(duì)象的引用,這個(gè)值會(huì)在傳遞途中發(fā)生變化。
定義:返回事件冒泡過(guò)程所有經(jīng)過(guò)的節(jié)點(diǎn)所構(gòu)成的Array數(shù)組。
定義:返回是否已經(jīng)調(diào)用了e.preventDefault()來(lái)阻止默認(rèn)行為。
定義:返回事件流正在哪個(gè)階段。
定義:獲取或設(shè)置事件的默認(rèn)操作是否已被阻止。
定義:返回一個(gè)觸發(fā)事件的對(duì)象的引用(ie的srcElement)。
定義:事件創(chuàng)建時(shí)的時(shí)間戳,毫秒級(jí)別。
定義:返回一個(gè)字符串(不區(qū)分大小寫), 表示該事件對(duì)象的事件類型。
定義:指明事件是否是由瀏覽器(當(dāng)用戶點(diǎn)擊實(shí)例后)或者由腳本(使用事件的創(chuàng)建方法,例如event.initEvent)啟動(dòng)。
event.target返回觸發(fā)事件的元素
event.currentTarget返回綁定事件的元素
event對(duì)象中 target和currentTarget 屬性的區(qū)別
創(chuàng)建一個(gè)新的事件(Event),隨之必須調(diào)用自身的 init 方法進(jìn)行初始化。
定義:Event.initEvent() 方法可以用來(lái)初始化由Document.createEvent() 創(chuàng)建的 event 實(shí)例,且在觸發(fā)之前event.dispatchEvent()。
定義:如果此事件沒(méi)有需要顯式處理,那么它默認(rèn)的動(dòng)作也不要做(因?yàn)槟J(rèn)是要做的)。
定義:阻止捕獲和冒泡階段中當(dāng)前事件的進(jìn)一步傳播(只阻止當(dāng)前偵聽(tīng)器)。
定義:阻止調(diào)用相同事件的其他偵聽(tīng)器。