面試阿里巴巴前端開發工程師筆試部分
阿新 • • 發佈:2020-08-19
一、筆試部分 (電話面部分還在整理,後續發出來)
介紹:
1) 最近挑戰了下阿里和騰訊;偶爾階段性的去面面試,個人覺得能對自己很好的檢驗,知道自己的不足,有沒有和潮流技術脫軌等;
2) 以下解法為後面自己優化過的... 有問題或有不對之處歡迎指正
3) 筆試時,瀏覽器頁面左邊是編碼區域,右邊是視訊區域,和麵試官視訊...
4) 內建編輯器相當於用記事本編碼,沒有語法自動補全及提示,也不能執行除錯;並且瀏覽器不能切換標籤(不能百度)... 考驗js功底
要求:
1) 筆試時間: 40分鐘
2) 筆試題目: 3道題,由易到難
3) 筆試要求: 需要使用線上編輯器編寫,筆試是實時通訊,考官可以一直看到你的程式碼進度。不切換瀏覽器頁籤,不線上搜尋原生函式的使用方式
4) 筆試懲罰: 1)未使用線上編輯器,以不通過處理 2)一旦發現作弊,永久錄入黑名單
1. 實現一個函式,輸入一個單詞,返回輸入單詞是否符合全大寫、全小寫、首字母大寫規則,正確返回true,錯誤返回false
const checkValid = (word) => { let toU = word.toLocaleUpperCase(); let toL = word.toLocaleLowerCase(); let initialsToU = word.charAt(0).toLocaleUpperCase() + word.slice(1).toLocaleLowerCase(); if (initialsToU === word || toU === word || toL === word) { return true } else { return false } console.log(checkValid('china')) }
2. 實現一個方法,陣列為升序返回1,陣列為降序返回-1,亂序返回0
const isSorted = (arr) => { let target = arr.toString().replace(/,/g, '') let riseTarget = arr.sort((a, b) => { return a - b }).toString().replace(/,/g, '') let dropTarget = arr.sort((a, b) => { return b - a }).toString().replace(/,/g, '') if (target === riseTarget) { return 1 } else if (target === dropTarget) { return -1 } else { return 0 } } console.log(isSorted([3, 2, 1, 0]))
3. 實現一個節流函式, 它返回一個新函式,新函式即時連續多次執行, 在wait
的時間執行一次。並要求此節流函式第一次執行就會執行fn
const throttle = (fn, wait) => {
let isNext = true;
return () => {
if (!isNext) return;
isNext = false;
setTimeout(() => {
fn()
isNext = true;
}, wait)
}
}
window.addEventListener("resize", throttle(() => console.log('我是節流函式'), 1000))