「閱」——JSCourse 旗下欄目,專門推薦我們為大家精心挑選的優質 JavaScript 相關技術內容
大家好,我是小 J, 歡迎大家來到 jscourse 「閱」欄目的第一期,本期我們為大家精心挑選了一份前端面試題。
這份面試題是由國外一名前端工程師——Boris Cherny 制作的。內容非常豐富,涵蓋了基礎概念、編碼(不同難易程度都有)、調試以及系統設計這些方面很經典的題目。我們選擇幾個題目來給大家看一下。
基礎概念題
- 什么是原型繼承?它和類繼承的區別是什么?
- **this **的工作原理是什么?
- 什么是 閉包
- ......
編程題
- 實現一個 **filter **函數(簡單)
- 實現檢查一個數是否為質數的函數 (簡單)
- 實現一**個 sort **函數(中等)
- 實現一個鏈表(難)
- 實現一個 HashMap 類(難)
- ......
調試題
1 我想讓如下代碼輸出 “hey amy”,但卻輸出了 “hey arnold”,這是為什么?
function greet(person) {
if (person == { name: 'amy' }) {
return 'hey amy'
} else {
return 'hey arnold'
}
}
greet({ name: 'amy' })
2 我想讓如下代碼輸出 “doggo”,但卻輸出了 “undefined”,這是為什么?
let dog = {
name: 'doggo',
sayName() {
console.log(this.name)
}
}
let sayName = dog.sayName
sayName()
...
系統設計題
- 請描述如何實現一個 auto complete 組件(包括前端和后端的實現)
- 如何實現一個簡單的 twitter 應用(你可以換成微博)
- ......
小編覺得這些題目還是比較全面的,考察到了基礎的 JavaScript 相關的技術知識點。把這份面試題推薦給你,希望你可以認認真真地將它做完,相信對你一定會有幫助!
點擊 這里 獲取完整的面試題,面試題是英文的,但是都很簡單,大家一定能看懂題目意思,如果實在看不懂題目意思或者做的過程中有問題的,可以通過「jscourse」微信公眾號,點擊「學習交流」菜單和大家一起討論交流以及咨詢。
關注「jscourse」微信公眾號獲取最新課程和學習資料