摘要:下面這道面試題是新鮮出爐,最近一次筆試的時候遇到的,當時直接就懵逼了。第五問輸出,這一問涉及到函數運算優先級問題,具體參考這里,和成員訪問的優先級都為,所以這一問相當于一個實例后,訪問的方法是上的,所以結果是
下面這道面試題是新鮮出爐,最近一次筆試的時候遇到的,當時直接就懵逼了。
然后在GitHub上咨詢了mqyqingfeng,非常感謝這位博主對我的耐心解答!!
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(); new Foo.getName(); new Foo().getName() new new Foo().getName();
第一問Foo.getName()輸出2,不解釋
第二問getName()輸出4,因為getName函數聲明會被提前,然后被函數表達式var var getName = function(){console.log(4);}所覆蓋,所以輸出4。
第三問Foo().getName()輸出1,當函數Foo()執行完后,函數內的變量getName沒有用關鍵字var定義,此時getName默認指向了window,相當于全局定義的getName再次被覆蓋。而Foo()返回的this也是指向window,所以這一問相當于this.getName(),結果自然就是1了。
第五問new Foo().getName()輸出3,這一問涉及到函數運算優先級問題,具體參考這里,new和成員訪問的優先級都為19,所以這一問相當于(new Foo()).getName();new一個實例后,訪問的方法是prototype上的,所以結果是3
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/83081.html
摘要:計算數組的極值微信面試題獲取元素的最終前端掘金一題目用代碼求出頁面上一個元素的最終的,不考慮瀏覽器,不考慮元素情況。 Excuse me?這個前端面試在搞事! - 前端 - 掘金金三銀四搞事季,前端這個近年的熱門領域,搞事氣氛特別強烈,我朋友小偉最近就在瘋狂面試,遇到了許多有趣的面試官,有趣的面試題,我來幫這個搞事 boy 轉述一下。 以下是我一個朋友的故事,真的不是我。 ... ja...
摘要:長話短說,讓我們來看一道題統計的個數給定一個非負整數,對于任意,,計算的值對應的二進制數中的個數,將這些結果返回為一個數組。第二版本的時間復雜度是最后版本的時間復雜度是,是的二進制數中的的個數,介于之間。 小胡子哥@Barret李靖給我推薦了一個寫算法刷題的地方leetcode.com,沒有ACM那么難,但題目很有趣。而且據說這些題目都來源于一些公司的面試題。好吧,解解別人公司的面試題...
閱讀 1040·2021-09-13 10:29
閱讀 3391·2019-08-29 18:31
閱讀 2633·2019-08-29 11:15
閱讀 3012·2019-08-26 13:25
閱讀 1369·2019-08-26 12:00
閱讀 2293·2019-08-26 11:41
閱讀 3377·2019-08-26 10:31
閱讀 1488·2019-08-26 10:25