金三銀四,跳槽旺季,而我也不例外,日前正在物色新工作。
記得多少就分享多少,與你共勉。
筆試
通過正則去獲取cookie對應key的值。
function getValueByKey () {
let cookie = "age=12;id=123;name=jouryjc",
_reg = /(^|\s|;)id=([^;]*)(;|$)/
if (cookie.match(_reg)) {
console.log(cookie.match(_reg)[2]) #[";id=123;", ";", "123", ";", index: 6, input: "age=12;id=123;name=jouryjc"]
} else {
console.warn(`no match result`)
}
}
getValueByKey ()
複製程式碼
主要考察的是正則的應用。/(^|\s|;)id=([^;]*)(;|$)/,()表示匹配項,如果匹配到了結果,match第一項返回整個匹配結果,後面依次是每個匹配項。不懂可以參考MDN。
不定寬高的垂直水平居中(相容IE6)
跪了跪了,相容IE6。知道的童鞋麻煩在評論區指導一下。
用原生JS寫事件新增函式 function on(elem, type, handler),相容IE8,並將handler函式的上下文繫結到事件物件上。
function on(elem, type, handler) {
if (elem.addEventListener) {
elem.addEventListener(type, function () {
handler.bind(elem)
})
} else {
elem.attachEvent(type, function () {
handler.bind(elem)
})
}
}
複製程式碼
這道題相對基礎。判斷addEventListener和attachEvent(相容IE8)就可以了。
使用ES6語法實現類、靜態屬性、靜態方法、私有方法、私有屬性、繼承
比較簡單的一道題,考察ES6 class,忘了的童鞋趕緊補課吧。
設計模式,寫三個以上你熟悉的設計模式,並且儘可能詳細的描述。
工廠模式、單例模式、模組模式、代理模式、職責鏈模式、策略模式、中介者模式.....推薦一篇個人認為比較nice的設計模式詳解
TCP三次握手圖文詳細描述
http/網路必考題,相信大家都懂的。
用node手寫一個服務,並輸出 hello, handsome boy!!!
const http = require('http');
const srv = http.createServer( (req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('hello, handsome boy!!!');
});
複製程式碼
so easy!
實現兩個超出(>Number.MAX_VALUE || < Number.MIN_VALUE)整數(含負數)相加函式function add(a, b)
沒有寫出來,本想順著二進位制(反碼、補碼等)做邏輯運算的思路去做,但無奈很多概念都忘了。bignumber.js,感興趣童鞋可以去看看原始碼。
面試
自我介紹都直接略過,直入專案: