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