摘要:答案解析是返回的函數(shù)的形參個(gè)數(shù),所以為返回的是函數(shù)調(diào)用時(shí)的實(shí)參個(gè)數(shù),所以為初始值就是正被執(zhí)行的對象用于在函數(shù)內(nèi)部調(diào)用自身,對象本身是個(gè)由函數(shù)調(diào)用時(shí)傳入的實(shí)參組成的偽數(shù)組,訪問單個(gè)參數(shù)的方式與訪問數(shù)組元素的方式相同。
1 function test (x, y, z) {
console.log(test.length) console.log(arguments.length) console.log(arguments.callee === test) console.log(arguments[2])
}
test(10,20)
答案:3 2 true undefined
解析:
test.length是返回的函數(shù)的形參個(gè)數(shù),所以為3;
arguments.length返回的是函數(shù)調(diào)用時(shí)的實(shí)參個(gè)數(shù),所以為2;
arguments.callee:初始值就是正被執(zhí)行的 Function 對象,用于在函數(shù)內(nèi)部調(diào)用自身,arguments對象本身是個(gè)由函數(shù)調(diào)用時(shí)傳入的實(shí)參組成的偽數(shù)組,訪問單個(gè)參數(shù)的方式與訪問數(shù)組元素的方式相同。
只傳入了兩個(gè)參數(shù),自然為undefined.
2 var a = 10
a.pro = 10
console.log(a.pro + a)
var s = "hello"
s.pro="world"
console.log(s.pro+s)
答案:NaN undefinedhello
解析:JavaScript引擎內(nèi)部在處理對某個(gè)基本類型 a進(jìn)行形如a.pro的操作時(shí),會在內(nèi)部臨時(shí)創(chuàng)建一個(gè)對應(yīng)的包裝類型(對數(shù)字類型來說就是Number類型)的臨時(shí)對象,并把對基本類型的操作代理到對這個(gè)臨時(shí)對象身上,使得對基本類型的屬性訪問看起來像對象一樣。但是在操作完成后,臨時(shí)對象就銷毀了,下次再訪問時(shí),會重新建立臨時(shí)對象,當(dāng)然就會返回undefined了
3
var f =1 if(!f) { var a =10 } function fn() { var b =20 c = 30 } fn() console.log(a) console.log(c) console.log(b)
答案:undefined 30 報(bào)錯:b is not defined
解析:
1、沒有用var聲明的是全局變量,即便在函數(shù)內(nèi)部;
2、只有在function內(nèi)部新聲明的才是局部變量,在if,while,for等聲明的變量其實(shí)是全局變量(除非本身在function內(nèi)部)
3、因?yàn)樽兞刻嵘?,雖然if塊的內(nèi)容沒執(zhí)行,但是預(yù)解析階段會執(zhí)行var a,只是沒有賦值而已,因此打印a是undefined而打印b會報(bào)錯
4
var length = 10 function fn () { console.log(this.length) } var obj = { length: 5, method: function(fn) { fn() arguments[0](); } }
obj.method(fn,1)
答案:10,2,第一次輸出10應(yīng)該沒有什么異議,這里的this指向window,第二個(gè)調(diào)用arguments[0]()相當(dāng)于執(zhí)行arguments調(diào)用方法,this指向arguments,而這里傳了兩個(gè)參數(shù),故輸出arguments長度為2。
5 function fn(a) {
console.log(a)
var a = 2
function a() {}
console.log(a)
}
fn(1)
答案:f a() { } 2
解析:我們知道預(yù)解析階段,變量聲明和函數(shù)聲明會提前,且變量名和函數(shù)名同名時(shí),函數(shù)優(yōu)先級高于變量,會覆蓋變量,因此第一個(gè)輸出的是f a(){ },繼續(xù)執(zhí)行,會執(zhí)行a=2,再輸出的時(shí)候就會輸出2,不理解的同學(xué)百度一下變量提升和函數(shù)提升
6 已知數(shù)組,編寫一個(gè)程序?qū)?shù)組便情話并且去掉其中的重復(fù)數(shù)字,然后升序排列
[[11,22,22],[13,14,15,15],[16,17,18,19,[11,12,[12,13,[14]]]],12]
7 實(shí)現(xiàn)一個(gè)函數(shù)add,滿足以下結(jié)果
add(1) // 1
add(1,2) // 3
add(1)(2) // 3
add(1,2)(3,4) // 10
add(1)(2)(3) //6
function add () { const arg = [...arguments] function sum () { arg.push(...arguments) return sum } sum.toString = function () { return arg.reduce((x, y) => { return x + y }) } return sum } console.log(add(1)) console.log(add(1, 2)) console.log(add(1, 2)(3, 4)(5,6))
8 看代碼
function Foo () { getName = function () { console.log(1) } return this } Foo.getName = function () { console.log(2) } Foo.prototype.getName = function () { console.log(3) } var getName = function () { console.log(4) } function getName () { console.log(5) } Foo.getName() getName() Foo().getName() getName() new Foo.getName() new Foo().getName() new new Foo().getName()
答案:2 4 1 1 2 3 3
1 訪問的是Foo函數(shù)上存儲的靜態(tài)屬性
2 函數(shù)表達(dá)式覆蓋函數(shù)聲明,因此調(diào)用的是覆蓋后的getName
3 先執(zhí)行了Foo(),此時(shí)返回window,并且函數(shù)里getName沒有var 所以覆蓋了全局的 因此是1
4 等同于window.getName 4
5 點(diǎn)運(yùn)算符優(yōu)選與new, 執(zhí)行為 new (Foo.getName)()
6 執(zhí)行順序?yàn)?(new Foo()).getName() (new Foo()) 返回Foo一個(gè)實(shí)例
7 執(zhí)行順序?yàn)?new ((new Foo()).getName)() 先初始化Foo實(shí)例 然后將其原型上的getName 作為構(gòu)造函數(shù)再次new
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/105626.html
摘要:好吧,我承認(rèn)太標(biāo)題黨了,這篇文章是通過一道前端面試題引出的純技術(shù)討論。我先要矯情無比的從中外詩歌說起。這一星期陸陸續(xù)續(xù)面試了不少于個(gè)人,其中不乏工作履歷突出的候選者。這樣做的問題在于循環(huán)并沒有要求枚舉對象的修改與當(dāng)前循環(huán)保持一致。 好吧,我承認(rèn)太標(biāo)題黨了,這篇文章是通過一道前端面試題引出的純技術(shù)討論。我先要矯情無比的從中外詩歌說起。 傳統(tǒng)的佛學(xué)經(jīng)典里,被世人熟知的有這樣一句話:一花一世...
摘要:好吧,我承認(rèn)太標(biāo)題黨了,這篇文章是通過一道前端面試題引出的純技術(shù)討論。我先要矯情無比的從中外詩歌說起。這一星期陸陸續(xù)續(xù)面試了不少于個(gè)人,其中不乏工作履歷突出的候選者。這樣做的問題在于循環(huán)并沒有要求枚舉對象的修改與當(dāng)前循環(huán)保持一致。 好吧,我承認(rèn)太標(biāo)題黨了,這篇文章是通過一道前端面試題引出的純技術(shù)討論。我先要矯情無比的從中外詩歌說起。 傳統(tǒng)的佛學(xué)經(jīng)典里,被世人熟知的有這樣一句話:一花一世...
摘要:面試題目匯總前言近期在找工作,也在讀前端面試江湖這本書,書中整理了很多基礎(chǔ)的面試題目,在書中也發(fā)現(xiàn)了一些錯誤。好記性不如爛筆頭,于是整理下對自己有益的題目,都是一些較為基礎(chǔ)的題目后期還會更新。,返回一個(gè)數(shù)組,成員為匹配的字符串。 面試題目匯總 前言 近期在找工作,也在讀 前端面試江湖 這本書,書中整理了很多基礎(chǔ)的面試題目,在書中也發(fā)現(xiàn)了一些錯誤。好記性不如爛筆頭,于是整理下對自己有益的...
摘要:面試題目匯總前言近期在找工作,也在讀前端面試江湖這本書,書中整理了很多基礎(chǔ)的面試題目,在書中也發(fā)現(xiàn)了一些錯誤。好記性不如爛筆頭,于是整理下對自己有益的題目,都是一些較為基礎(chǔ)的題目后期還會更新。,返回一個(gè)數(shù)組,成員為匹配的字符串。 面試題目匯總 前言 近期在找工作,也在讀 前端面試江湖 這本書,書中整理了很多基礎(chǔ)的面試題目,在書中也發(fā)現(xiàn)了一些錯誤。好記性不如爛筆頭,于是整理下對自己有益的...
摘要:面試題目匯總前言近期在找工作,也在讀前端面試江湖這本書,書中整理了很多基礎(chǔ)的面試題目,在書中也發(fā)現(xiàn)了一些錯誤。好記性不如爛筆頭,于是整理下對自己有益的題目,都是一些較為基礎(chǔ)的題目后期還會更新。,返回一個(gè)數(shù)組,成員為匹配的字符串。 面試題目匯總 前言 近期在找工作,也在讀 前端面試江湖 這本書,書中整理了很多基礎(chǔ)的面試題目,在書中也發(fā)現(xiàn)了一些錯誤。好記性不如爛筆頭,于是整理下對自己有益的...
摘要:在掘金上看到了一位大佬發(fā)了一篇很詳細(xì)的面試記錄文章一年半經(jīng)驗(yàn),百度有贊阿里面試總結(jié),為了查漏補(bǔ)缺,抽空就詳細(xì)做了下。 在掘金上看到了一位大佬發(fā)了一篇很詳細(xì)的面試記錄文章-《一年半經(jīng)驗(yàn),百度、有贊、阿里面試總結(jié)》,為了查漏補(bǔ)缺,抽空就詳細(xì)做了下。(估計(jì)只有我這么無聊了哈哈哈) 有給出的或者有些不完善的答案,也盡力給出/完善了(可能有錯,大家自行辨別)。有些很困難的題目(例如實(shí)現(xiàn)Promi...
閱讀 3695·2021-10-09 09:44
閱讀 3400·2021-09-22 15:29
閱讀 3158·2019-08-30 15:54
閱讀 3029·2019-08-29 16:19
閱讀 2157·2019-08-29 12:50
閱讀 602·2019-08-26 14:04
閱讀 1709·2019-08-23 18:39
閱讀 1359·2019-08-23 17:59