摘要:在頁(yè)面上進(jìn)行各種操作,模擬用戶的使用情況。如果內(nèi)存占用基本平穩(wěn),接近水平,就說明不存在內(nèi)存泄漏。還從來沒操作過。。。。內(nèi)心一度崩潰,真的是為了面試而面試。。建議大家不要裸辭。。如果覺得本文對(duì)你有所幫助,就一下吧大傳送之術(shù)我的博客
1 哪些操作會(huì)引起內(nèi)存泄漏,如何發(fā)現(xiàn) 一些常見的內(nèi)存泄露代碼
// 意外的全局變量 functuon foo () { bar = 1} //函數(shù)里直接對(duì)未定義的變量賦值,導(dǎo)致變量存在頂部Window中,內(nèi)存垃圾無(wú)法回收 //閉包變量被引用導(dǎo)致無(wú)法被回收 function f() { var obj = { a: 2 } return obj; } var a = f() //被遺忘的定時(shí)器 function Test() { this.obj= {}; this.index = 1; this.timer = null; var cache = []; // 內(nèi)部變量,內(nèi)存隱患... this.timer = window.setInterval(() =>{ this.index += 1; this.obj = { val: "_timerxxxxxbbbbxx_" + this.index, junk: [...cache] }; cache.push(this.obj); }, 1); console.warn("create Test instance.."); } test = new Test(); // JS對(duì)象開啟定時(shí)器不斷分配內(nèi)存 ...
參考文章:
https://juejin.im/post/5a8e7f...
https://github.com/wengjq/Blo...
如何查看內(nèi)存占用情況 webgoogol控制臺(tái) 》 performance 面板 > 勾選 Memory
點(diǎn)擊左上角的錄制按鈕。
在頁(yè)面上進(jìn)行各種操作,模擬用戶的使用情況。
如果內(nèi)存占用基本平穩(wěn),接近水平,就說明不存在內(nèi)存泄漏。反之,就是內(nèi)存泄漏了。
console.log(process.memoryUsage()); //node
2 以下代碼輸出typeof Vue typeof React typeof jQery
function github Vue
object github React
function github Jquery
ps:話說我寫了這么久Vue。還從來沒操作過typeof vue。。。。
3 下面代碼輸出class F { init () { console.log(1) } } var f = new F() F.prototype.init = function () { console.log(2) } f.init() //24 如何在數(shù)組頭部、尾部、中部增加/刪除
頭部:unshift / shift 中部:splice / concat 尾部: push / pop
參考:https://developer.mozilla.org...
5 手寫防抖/節(jié)流 實(shí)現(xiàn)function throttleAndDebounce(fn, delay, isThrottle) { let lastCallTime = 0, timer = null; return (...args) => { if (isThrottle) { const now = Date.now() if (now - lastCallTime < delay) return lastCallTime = now fn(...args) } else { if (timer) clearTimeout(timer) timer = setTimeout( () => { fn(...args) }, delay) } } }6 filter/reduce 實(shí)現(xiàn)數(shù)組去重
var arr = [1,2,1] arr.filter( (it, idx, arr) => { return arr.indexOf(it) === idx }) // reduce var reducer = (arr, cur) => { if ( arr.length === 0 || arr[arr.length - 1] !== cur) { arr.push(cur) } return arr } arr.sort().reduce(reducer, [])7 原生實(shí)現(xiàn) 上傳base64 圖片
var file = document.getElementById("file").files[0] var reader = new FileReader() reader.onload = function (e) { $.post("/upload" , { "base64": e.target.result } , function () {}) } reader.readAsDataURL(file)8 寫成3種前端下載文件方式
參考: https://segmentfault.com/a/11...
ps:這也算?。??瀏覽器打開。。。內(nèi)心一度崩潰,真的是為了面試而面試。。
9 手寫promise 實(shí)現(xiàn)參考:
https://www.jianshu.com/p/43d...
https://developer.mozilla.org...
10 vue實(shí)現(xiàn)數(shù)據(jù)綁定有什么缺陷?作者為什么改用proxy實(shí)現(xiàn)參考:https://zhuanlan.zhihu.com/p/...
后記有些問題 我沒給出答案,只給出一些參考鏈接,主要是才疏學(xué)淺,不能給出一個(gè)絕對(duì)完美的答案;或者答案的內(nèi)容量可以再寫一篇深入專研的文章,大家有什么好的意見或者文章錯(cuò)誤可以留言補(bǔ)充;歡迎技術(shù)交流
ps:一年沒面試了第一次做這種筆試題,我表示一個(gè)筆都好久沒握過的人瑟瑟發(fā)抖。。。建議大家不要裸辭。。這個(gè)夏天有點(diǎn)冷。。。
如果覺得本文對(duì)你有所幫助,就star一下吧~大傳送之術(shù)! 我的博客Github
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/103540.html
摘要:在頁(yè)面上進(jìn)行各種操作,模擬用戶的使用情況。如果內(nèi)存占用基本平穩(wěn),接近水平,就說明不存在內(nèi)存泄漏。還從來沒操作過。。。。內(nèi)心一度崩潰,真的是為了面試而面試。。建議大家不要裸辭。。如果覺得本文對(duì)你有所幫助,就一下吧大傳送之術(shù)我的博客 1 哪些操作會(huì)引起內(nèi)存泄漏,如何發(fā)現(xiàn) 一些常見的內(nèi)存泄露代碼 // 意外的全局變量 functuon foo () { bar = 1} //函數(shù)里直接對(duì)未定...
以下是2018年年初,面某公司的筆試題。為啥現(xiàn)在才分享出來,純粹是因?yàn)橹皯?。只分享題,沒有答案。 1.請(qǐng)通過代碼實(shí)現(xiàn)下面的效果 function add(num){ var total = 0; var curryAdd = function(num){ total = total + num; return total; } r...
摘要:上次由于時(shí)間有限只分享了一部分的前端面試題,所以本篇繼續(xù)分享前端經(jīng)典面試試題一棧和隊(duì)列的區(qū)別棧的插入和刪除操作都是在一端進(jìn)行的,而隊(duì)列的操作卻是在兩端進(jìn)行的。 上次由于時(shí)間有限只分享了一部分的前端面試題,所以本篇繼續(xù)分享前端經(jīng)典面試試題 一. 棧和隊(duì)列的區(qū)別? 棧的插入和刪除操作都是在一端進(jìn)行的,而隊(duì)列的操作卻是在兩端進(jìn)行的。 隊(duì)列先進(jìn)先出,棧先進(jìn)后出。 棧只允許在表尾一端進(jìn)行插入和刪...
閱讀 3826·2021-11-24 10:23
閱讀 2832·2021-09-06 15:02
閱讀 1347·2021-08-23 09:43
閱讀 2417·2019-08-30 15:44
閱讀 3113·2019-08-30 13:18
閱讀 838·2019-08-23 16:56
閱讀 1807·2019-08-23 16:10
閱讀 607·2019-08-23 15:08