亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

JavaScript面試題

2024-04-27 15:09:57
字體:
來源:轉載
供稿:網友

五個典型的javaScript面試題

本文轉載自:眾成翻譯 譯者:cherryvenus 鏈接:http://www.zcfy.cc/article/1960 原文:https://www.sitepoint.com/5-typical-Javascript-interview-exercises/

在IT界,需要大量的javascript開發者。如果這個角色能夠最佳地展現你的能力,那么你有許多機會換家公司,以及提高薪水。但是在你被公司錄取之前,你需要展現你的技術,以便通過面試環節。在這篇文章中,我會展示你五個典型的問題。

問題1: 范圍(Scope)

思考以下代碼:

(function() { var a = b = 5;})();console.log(b);

控制臺(console)會打印出什么?

答案

上述代碼會打印出5。

這個問題的陷阱就是,在立即執行函數表達式(IIFE)中,有兩個命名,但是其中變量是通過關鍵詞var來聲明的。這就意味著a是這個函數的本地變量。與此相反,b是屬于這個函數的全局變量的。

這個問題另一個陷阱就是,在函數中他沒有使用“嚴格模式” ('use strict';)。如果 嚴格模式開啟,那么代碼就會報出未捕獲引用錯誤(Uncaught ReferenceError):b沒有定義。記住嚴格模式要求,如果這個是預期的行為,你需要明確地引用全局變量,。因此,你需要像下面這么寫:

(function() { 'use strict'; var a = window.b = 5;})();console.log(b);

問題2: 創建 “原生(native)” 方法

String對象上定義一個repeatify函數。這個函數接受一個整數參數,來明確字符串需要重復幾次。這個函數要求字符串重復指定的次數。舉個例子:

``console.log('hello'.repeatify(3));``

應該打印出hellohellohello.

答案

一種可能的實現如下所示:

String.PRototype.repeatify = String.prototype.repeatify || function(times) { var str = ''; for (var i = 0; i < times; i++) { str += this; } return str;};

這個問題測試了開發人員對于javascript中繼承的掌握,以及prototype這個屬性。這也驗證了開發人員是否有能力擴展原生數據類型函數(雖然不應該這么做)。

在這里,另一種重點是,展示你意識到如何在不重寫可能已經定義的函數。這個需要在自定義函數之前判斷函數不存在。

``String.prototype.repeatify = String.prototype.repeatify || function(times) {/* code here */};``

當你被要求一個墊片javascript函數時,這個技巧十分有用。

問題3: 提升變量(Hoisting)

執行以下代碼會有什么結果?為什么會這樣?

function test() { console.log(a); console.log(foo()); var a = 1; function foo() { return 2; }}test();

答案

這段代碼的執行結果是undefined2

這個結果的原因是,變量和函數都被提升了(hoisted)。因此,那個時候a被打印了,它存在函數之中(也就是聲明了),但是依然是 undefined。換言之,上述代碼和以下代碼是相同的。

function test() { var a; function foo() { return 2; } console.log(a); console.log(foo()); a = 1;}test();

問題4: this在javascript中是如何工作的

以下代碼的結果是什么?請解釋你的答案。

var fullname = 'John Doe';var obj = { fullname: 'Colin Ihrig', prop: { fullname: 'Aurelio De Rosa', getFullname: function() { return this.fullname; } }};console.log(obj.prop.getFullname());var test = obj.prop.getFullname;console.log(test());

答案

代碼打印了Aurelio De RosaJohn Doe。原因是在javascript中,一個函數的語境,也就是this這個關鍵詞引用的,依賴于函數是如何調用的,不是如何定義的。

在第一個console.log()調用中, getFullname()是作為obj.prop的函數被調用的。因此,這里的語境指向后者并且函數返回對象的 fullname屬性。相反,當 getFullname() 被指定為test的變量,那個語境指向全局對象(window)。因為test相當于設置為全局對象的屬性。因為這個原因,函數返回window的一個fullname屬性,這在這個案例中是在代碼片段中第一行設置的。

問題5: call()apply()

修復上一個問題,讓最后一個console.log()打印出 Aurelio De Rosa。

答案

這個問題可以通過函數call()或者apply()強制函數語境。如果你不知道call()apply()之間的區別,我推薦閱讀文章function.call和function.apply之間有和區別?。在以下代碼中,我會用call(),但是在這個案例中,apply()也可以獲得相同的結果:

``console.log(test.call(obj.prop));``

結論

在這篇文章中,我們討論了,在面試中為了測試javascript開發者,而會問到的五種典型的問題。來自面試的真實問題可能會有所不同,但是涵蓋的概念和主題通常都是十分相似的。我希望你愉悅地測試你的能力。萬一你不知道所有的答案,不要擔心:沒有學習和經驗不能解決的問題。

如果你在面試中被問到了其他有趣的問題,不要猶豫馬上來和我們分享吧。這會幫助到很多的開發者。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人免费全部观看天天性色| 国产原创欧美精品| 亚洲精品有码在线| 国产日韩中文字幕在线| 国产精品欧美日韩| 国产精品久久久久久久电影| 亚洲精品视频播放| 欧美高清电影在线看| 亚州精品天堂中文字幕| 久久久精品久久| 欧美成年人在线观看| 国产成人自拍视频在线观看| 97碰碰碰免费色视频| 茄子视频成人在线| 久久99国产精品自在自在app| 中文字幕久精品免费视频| 亚洲性av网站| 成人a视频在线观看| 国产精品久久久久久久app| 成人精品久久一区二区三区| 日韩极品精品视频免费观看| 中文字幕亚洲精品| 2019最新中文字幕| 91久久嫩草影院一区二区| 亚洲福利视频专区| 欧美黑人狂野猛交老妇| 欧美裸体xxxx| 97精品国产aⅴ7777| 亚洲国产高清高潮精品美女| 亚洲人成电影网站色www| 久久久久www| 国产精品网红福利| 国产精品一区=区| 国产成人精品一区二区三区| 最近日韩中文字幕中文| 国产日韩欧美在线| 97热在线精品视频在线观看| 成人福利视频网| 欧美一级bbbbb性bbbb喷潮片| 91av在线网站| 亚洲欧洲日产国产网站| 精品国产一区二区三区四区在线观看| 国产精品v片在线观看不卡| 亚洲精品免费一区二区三区| 精品日韩视频在线观看| 日韩精品中文字幕在线| 日韩亚洲成人av在线| 亚洲国内高清视频| 欧美成人在线免费| 亚洲风情亚aⅴ在线发布| 欧美成人激情视频免费观看| 国产女同一区二区| 中文字幕在线看视频国产欧美在线看完整| 日韩高清电影免费观看完整版| 奇门遁甲1982国语版免费观看高清| 国产精品中文久久久久久久| 亚洲美女精品成人在线视频| 成人福利视频在线观看| 亚洲精品大尺度| www高清在线视频日韩欧美| 91豆花精品一区| 亚洲性日韩精品一区二区| 国产成人黄色av| 亚洲欧洲激情在线| 国产精品1区2区在线观看| 午夜欧美不卡精品aaaaa| 国产91色在线|| yellow中文字幕久久| 亚洲第一国产精品| 精品中文视频在线| 精品一区二区三区电影| 欧美综合一区第一页| 国产视频欧美视频| 欧美日韩成人在线播放| 久久香蕉国产线看观看网| 日本高清久久天堂| 91av视频在线播放| 国产不卡av在线| 亚洲天堂男人天堂女人天堂| 一区二区三区四区在线观看视频| 亚洲欧美另类在线观看| 亚洲区一区二区| 国产精品美乳一区二区免费| 亚洲第一精品夜夜躁人人爽| 96sao精品视频在线观看| 欧美性猛交xxxx久久久| 国产精品伦子伦免费视频| 久久久电影免费观看完整版| 日韩成人xxxx| 亚洲天堂免费视频| 欧美一区二区三区四区在线| 国产精品入口日韩视频大尺度| 午夜精品一区二区三区视频免费看| 国产美女精彩久久| 亚洲精品视频二区| 国产日本欧美一区二区三区在线| 国产婷婷成人久久av免费高清| 日韩一级裸体免费视频| 日韩在线一区二区三区免费视频| 亚洲xxxx妇黄裸体| 亚洲欧美三级伦理| 超碰日本道色综合久久综合| 国产一区二区三区在线免费观看| 91嫩草在线视频| 午夜美女久久久久爽久久| 日韩视频―中文字幕| 久久精品国产一区二区三区| 九色成人免费视频| 日韩免费在线免费观看| 亚洲丝袜av一区| 国产精品成人av在线| 欧美性xxxxx极品娇小| 日韩高清电影免费观看完整| 91精品国产自产在线| 亚洲精品久久久久久下一站| 蜜臀久久99精品久久久久久宅男| 亚洲国产女人aaa毛片在线| 一区二区三区黄色| 中文字幕久久精品| 91久久国产综合久久91精品网站| 国产精品直播网红| 欧美性做爰毛片| 欧美乱大交做爰xxxⅹ性3| 亚洲自拍另类欧美丝袜| 欧美性极品xxxx做受| 国产在线精品一区免费香蕉| 国产小视频国产精品| 国产亚洲精品一区二区| 亚洲电影中文字幕| 国产成人福利网站| 一区二区在线免费视频| 亚洲第一页在线| 欧美激情久久久| 91精品国产沙发| 国产精品日韩在线播放| 欧美中文字幕在线视频| 国产丝袜一区二区| 1769国产精品| 日韩专区在线播放| 亚洲网站在线观看| 亚洲男人的天堂在线播放| 国产亚洲激情视频在线| 欧美另类极品videosbestfree| 亚洲欧美第一页| 黑人巨大精品欧美一区二区免费| 久久久久久成人| 国产一区二区三区在线观看网站| 精品国产乱码久久久久酒店| 欧美最猛性xxxxx免费| 日韩国产欧美区| 国语自产精品视频在线看抢先版图片| 国产激情久久久久| 久久视频国产精品免费视频在线| 欧美在线观看日本一区| 91亚洲精品一区| 国产69精品久久久久久| 国产欧美一区二区白浆黑人| 日韩av免费看网站| 久久中文字幕一区| 国产精品国产三级国产专播精品人| 91av成人在线| 国产成人高清激情视频在线观看| 欧美肥臀大乳一区二区免费视频| 九九精品视频在线|