摘要:搞清楚什么是是一個(gè)對應(yīng)于傳遞給函數(shù)的參數(shù)的類數(shù)組對象。對象是所有非箭頭函數(shù)中都可用的局部變量。首先它是一個(gè)類數(shù)組對象,結(jié)果毫無疑問是,注意結(jié)果是字符串類型。接下來調(diào)用,結(jié)果是從未見過的。第一次寫文章,希望對你們有點(diǎn)幫助。
1.搞清楚什么是arguments
“arguments 是一個(gè)對應(yīng)于傳遞給函數(shù)的參數(shù)的類數(shù)組對象。
arguments對象是所有(非箭頭)函數(shù)中都可用的局部變量。你可以使用arguments對象在函數(shù)中引用函數(shù)的參數(shù)。此對象包含傳遞給函數(shù)的每個(gè)參數(shù),第一個(gè)參數(shù)在索引0處。”
首先它是一個(gè)類數(shù)組對象,typeof arguments結(jié)果毫無疑問是"object",注意結(jié)果是字符串類型。接下來調(diào)用Object.prototype.toString.call(arguments),結(jié)果是從未見過的"[object Arguments]"。
2.轉(zhuǎn)換為數(shù)組1.Array的silce方法
Array.prototype.slice.call(arguments)
2.Array.from
let re = Array.from(arguments)
3.拓展運(yùn)算符
let re = [...arguments]3.從arguments到類數(shù)組
類數(shù)組必須有l(wèi)ength屬性,具有索引屬性,下面結(jié)合代碼說明:
let obj = { "0": "a", "1": "b", "2": "c", length: 3, "push": Array.prototype.push, "splice": Array.prototype.splice } obj.push("d") console.log(obj)
結(jié)果為:
實(shí)際執(zhí)行過程相當(dāng)于:
obj[obj.length] = "d"; obj.length++;4.筆試題
var length = 10; function fn(){ console.log(this.length) } var obj = { length: 5, getF: function(fn) { fn(); arguments[0](); } } obj.getF(fn);
考察的是arguments和this指向問題,我答的5 1,真實(shí)結(jié)果為10 1。第一次寫文章,希望對你們有點(diǎn)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/102684.html
摘要:事實(shí)上,滿足一定條件的對象都能被方法轉(zhuǎn)換成數(shù)組。繼承于的很大原因是不需要這四個(gè)方法。而在非嚴(yán)格模式下,兩個(gè)會互相影響。數(shù)組與類數(shù)組對象數(shù)組具有一個(gè)基本特征索引。這是一般對象所沒有的。是利用對象的鍵值對存取數(shù)據(jù),而卻是利用數(shù)組的索引。 1. 什么是 arguments MDN 上解釋: arguments 是一個(gè)類數(shù)組對象。代表傳給一個(gè)function的參數(shù)列表。 我們先用一個(gè)例子直觀了...
摘要:事實(shí)上,滿足一定條件的對象都能被方法轉(zhuǎn)換成數(shù)組。繼承于的很大原因是不需要這四個(gè)方法。而在非嚴(yán)格模式下,兩個(gè)會互相影響。數(shù)組與類數(shù)組對象數(shù)組具有一個(gè)基本特征索引。這是一般對象所沒有的。是利用對象的鍵值對存取數(shù)據(jù),而卻是利用數(shù)組的索引。 1. 什么是 arguments MDN?上解釋: arguments 是一個(gè)類數(shù)組對象。代表傳給一個(gè)function的參數(shù)列表。 我們先用一個(gè)例子直觀了...
摘要:以上簡單總結(jié)了下對執(zhí)行上下文和變量對象的理解,主要在于記錄總結(jié)一下學(xué)習(xí)成果,目前文章的水平實(shí)在不敢談分享。 執(zhí)行上下文(Execution Context) 文章同步到github javaScript中的執(zhí)行上下文和變量對象 JavaScript代碼執(zhí)行的過程,包括編譯和執(zhí)行兩個(gè)階段,編譯就是通過詞法分析,構(gòu)建抽象抽象語法樹,并編譯成機(jī)器識別的指令,在JavaScript代碼編譯階段...
摘要:構(gòu)造函數(shù)調(diào)用使用操作符來調(diào)用函數(shù)則視其為構(gòu)造函數(shù)。構(gòu)造函數(shù)的主要職責(zé)是初始化該新對象。使用方法定義高階函數(shù)允許使用者給回調(diào)函數(shù)指定接收者。當(dāng)給高階函數(shù)傳遞對象方法時(shí),使用匿名函數(shù)在適當(dāng)?shù)慕邮照呱险{(diào)用該方法。 參考書籍:《Effective JavaScript》 使用函數(shù) 理解函數(shù)調(diào)用、方法調(diào)用及構(gòu)造函數(shù)之間的不同 函數(shù)、方法和構(gòu)造函數(shù)是單個(gè)構(gòu)造對象的三種不同的使用模式。 函數(shù)調(diào)用...
摘要:參數(shù)引用函數(shù)的上下文,函數(shù)上下文來自于等面向?qū)ο笳Z言,中的依賴于函數(shù)聲明。沒有重載函數(shù)沒有簽名,因?yàn)槠鋮?shù)是由包含零或多個(gè)值的數(shù)組來表示的。這就是重載函數(shù)。重載函數(shù)常用來實(shí)現(xiàn)功能類似而所處理的數(shù)據(jù)類型不同的問題。 1 函數(shù)參數(shù) 函數(shù)的實(shí)參和形參個(gè)數(shù)可以不等,之所以會這樣,原因是 ECMAScript 中的參數(shù)在內(nèi)部是用一個(gè)數(shù)組來表示的。函數(shù)接收到的始終都是這個(gè)數(shù)組,而不關(guān)心數(shù)組中包含哪...
閱讀 2680·2021-11-18 10:02
閱讀 3412·2021-09-28 09:35
閱讀 2593·2021-09-22 15:12
閱讀 750·2021-09-22 15:08
閱讀 3100·2021-09-07 09:58
閱讀 3472·2021-08-23 09:42
閱讀 733·2019-08-30 12:53
閱讀 2083·2019-08-29 13:51