久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

看看這些前端面試題,帶你搞定高頻知識點(六)

看看這些前端面試題,帶你搞定高頻知識點(六)

每天10道題,100天后,搞定所有前端面試的高頻知識點,加油!!!,在看文章的同時,希望不要直接看答案,先思考一下自己會不會,如果會,自己的答案是什么?想過之后再與答案比對,是不是會更好一點,當然如果你有比我更好的答案,歡迎評論區(qū)留言,一起探討技術(shù)之美。

面試官:請你簡述 var、let、const 三者之間的區(qū)別?

我:呃~,好的,三者的作用區(qū)別總結(jié)如下:

var:最常用的變量;允許重復聲明,但會導致數(shù)據(jù)被覆蓋;會產(chǎn)生變量提升;局部變量掛載到全局對象上,會造成全局對象的污染。

console.log(a) // 因變量提升, var a;提到前面但是沒有賦值,所以值為undefined var a = 1 var a = '你好' // var聲明的變量會被重新賦值 console.log(a) // a會打印被重新賦值的值 console.log(window.a) // var聲明的局部變量會被掛載到全局變量上,造成全局變量的污染。
登錄后復制

let:es6新增命令,用法類似var;不允許重復聲明;不存在變量提升;常作用于塊級作用域而避免局部變量造成全局變量的污染。

let a=10; console.log(a) // 不存在變量提升,所以值為:10 console.log(window.a) // 不會造成全局污染,所以值為 undefined for(let i =0;i<3;i++){ // 會生成塊級作用域,i 的值只能在塊級作用域中使用     console.log(i) } console.log(i) // 因為拿不到塊級作用域中的值,所以報錯。
登錄后復制

const:es6新增命令,用于聲明常量且值無法被修改;聲明常量必須立刻初始化,否則后期賦值報錯;不能重復聲明;const指向變量的地址, 只要變量名所引用的地址不變就不會報錯

const arr = ['小張','小王','小李','小趙'] arr[0]='小明' console.log(arr) // ['小明', '小王', '小李', '小趙'] const arr = [] // 報錯
登錄后復制

面試官:請你談談對深拷貝與淺拷貝的理解

我:呃~,好的,對兩者的理解總結(jié)如下:

深拷貝:新數(shù)據(jù)與原數(shù)據(jù)互不打擾。

// 擴展運算符在一維數(shù)組中是屬于深拷貝,在多維數(shù)組中屬于淺拷貝 let arr = [1,2,3] let newArr = [...arr] newArr.push(4) console.log(arr,newArr) // [1, 2, 3],[1, 2, 3, 4]  // 深拷貝用法 let list = [     {id:1,name:'張三',age:18},     {id:2,name:'李四',age:28},     {id:3,name:'王五',age:38}, ] let newList = JSON.parse(JSON.stringify(list)) newList.pop() console.log(list.length,newList.length) // 3 2
登錄后復制

當然,深拷貝也有一種標準寫法,如下:

// 標準的深拷貝 => 引用數(shù)據(jù)類型(數(shù)組,對象) function deepClone(source){     const targetObj = source.constructor === Array ? [] : {}     for(let keys in source){         if(source.hasOwnProperty(keys)){             // 引用數(shù)據(jù)類型             if(source[keys] && typeof source[keys] === 'object'){                 targetObj[keys] = source[keys].constructor === Array ? [] : {}                 // 遞歸                 targetObj[keys] = deepClone(source[keys])             }else{                 // 基本數(shù)據(jù)類型,直接賦值                 targetObj[keys] = source[keys]             }         }     }     return targetObj }  let obj = {     name:'張三',     age:18,     hobby:['抽煙','喝酒','燙頭'],     action:{         am:'敲代碼',         pm:'睡覺'     } } let newObj = deepClone(obj) newObj.name = '李四' console.log(obj.name,newObj.name)// 張三 李四
登錄后復制

淺拷貝:新數(shù)據(jù)會影響原數(shù)據(jù)。

let arr = [1,2,3] let newArr = arr // 對新數(shù)據(jù)做出改變,原數(shù)據(jù)也會發(fā)生改變,這種就叫做淺拷貝 newArr.push(4) // [1, 2, 3, 4] console.log(arr,newArr) // [1, 2, 3, 4]
登錄后復制

說白了,深拷貝是重新獲得一個新的數(shù)據(jù),且和原來的數(shù)據(jù)沒有任何關(guān)系;淺拷貝雖然能得到一個新的數(shù)據(jù),但是和原來的數(shù)據(jù)仍有一定的聯(lián)系。

面試官:輸入URL的那一瞬間瀏覽器做了什么?

我:呃~,URL是由以下幾部分組成

https: 傳輸協(xié)議(http和tcp之間加了一層 TSL 或者 SSL 的安全層)

www:服務器

baidu.com:域名

DNS域名系統(tǒng)會匹配真實的IP,第一次訪問正常,第二次訪問會將域名解析的IP存在本地用來讀取瀏覽器緩存。

輸入URL的那一刻經(jīng)歷了:域名 -> DNS域名系統(tǒng) -> 拿到真實IP -> 建立連接(TCP的三次握手) -> 拿數(shù)據(jù),渲染頁面 -> 四次揮手

具體實現(xiàn)過程

  • 1. url解析:判斷是搜索內(nèi)容還是請求URL

  • 2. 查找本地緩存:如果有緩存直接返回給頁面,沒有緩存則進入網(wǎng)絡請求階段

  • 3. DNS解析

  • 4. 通過三次握手建立TCP連接

  • 5. 合成請求頭信息,發(fā)送http請求

  • 6. 處理響應信息

  • 7. 通過四次揮手斷開TCP連接

  • 8. 如果響應狀態(tài)碼301,則重定向

  • 9. 瀏覽器進行頁面渲染:1)解析html,生成DOM樹;2)根據(jù)css計算節(jié)點樣式,生成stylesheet;3)生成布局樹;4)為特定的元素生成獨立圖層

面試官:說一說cookie sessionStorage localStorage 區(qū)別?

我:呃~,好的,他們之間的關(guān)系如下:

相同點

都是瀏覽器存儲,都存儲在瀏覽器本地。

區(qū)別

  • 1.cookie由服務器或前端寫入, sessionStorage以及l(fā)ocalStorage都是由前端寫入

  • 2.cookie的生命周期由服務器端寫入時就設(shè)置好的,localStorage是寫入就一直存在,除非手動清除,sessionStorage是由頁面關(guān)閉時自動清除

  • 3.cookie存儲空間大小約4kb, sessionStorage及l(fā)ocalStorage空間比較大,大約5M

  • 4.3者的數(shù)據(jù)共享都遵循同源原則,sessionStorage還限制必須是同一個頁面

  • 5.前端給后端發(fā)送請求時,自動攜帶cookie, session 及 local都不攜帶

  • 6.cookie一般存儲登錄驗證信息或者token,localStorage常用于存儲不易變動的數(shù)據(jù),減輕服務器壓力,sessionStorage可以用來監(jiān)測用戶是否是刷新進入頁面,如音樂播放器恢復進度條功能

面試官:說一說JS數(shù)據(jù)類型有哪些,區(qū)別是什么?

我:呃~,JS數(shù)據(jù)類型分為兩類:一類是基本數(shù)據(jù)類型,另一類是引用數(shù)據(jù)類型,如下:

  • 基本類型:string、number、boolean、null、undefined、symbol、bigInt

  • 引用類型: object、array

基本類型存儲在棧中,空間小,操作頻繁

引用類型存儲在堆中,空間大,在棧中存儲了指針,指向在堆中的起始地址

注意:Symbol具有唯一性, 不可枚舉 使用getOwnPropertySymbols獲取

面試官:說一說你對閉包的理解?

我:呃~,內(nèi)層函數(shù)引用外層函數(shù)中變量,這些變量的集合就是閉包。

  • 形成的原理:作用域鏈,當前作用域可以訪問上級作用域中的變量。

  • 解決的問題:能夠讓函數(shù)作用域中的變量在函數(shù)執(zhí)行結(jié)束之后不被銷毀,同時也能在函數(shù)外部可以訪問函數(shù)內(nèi)部的局部變量。

  • 帶來的問題:由于垃圾回收器不會將閉包中變量銷毀,于是就造成了內(nèi)存泄露,內(nèi)存泄露積累多了就容易導致內(nèi)存溢出。

  • 閉包的應用,能夠模仿塊級作用域,能夠?qū)崿F(xiàn)柯里化,在構(gòu)造函數(shù)中定義特權(quán)方法、Vue中數(shù)據(jù)響應式Observer中使用閉包等。

面試官:說一說JavaScript有幾種方法判斷變量的類型?

我:呃~,好的,總結(jié)如下:

1. typeof(根據(jù)二進制判斷),不能判斷數(shù)據(jù)類型:null和object

2. intanceof(根據(jù)原型鏈判斷),原生數(shù)據(jù)類型不能判斷

3. constructor.name(根據(jù)構(gòu)造器判斷),不能判斷null數(shù)據(jù)類型

4. Object.prototype.toString.call()(用Object的toString方法判斷)所有類型數(shù)據(jù)都能判斷,記住判斷結(jié)果打印為:'[object Xxx]'

面試官:說一說null 和 undefined 的區(qū)別,如何讓一個屬性變?yōu)閚ull

我:呃~,null 是定義 并賦值null undefined是定義未賦值。

面試官:說一下有什么方法可以保持前后端實時通信?

我:呃~,輪詢、長輪詢、 iframe流、WebSocket、SSE。

面試官:說一說偽數(shù)組和數(shù)組的區(qū)別?

我:呃~,好的,總結(jié)如下:

偽數(shù)組的特點:類型是object、不能使用數(shù)組方法、可以獲取長度、可以使用for in遍歷

偽數(shù)組可以轉(zhuǎn)換為數(shù)組的方法:Array.prototype.slice.call()、Array.from()、[…偽數(shù)組]

哪些是偽數(shù)組:函數(shù)的參數(shù)arguments,Map和Set的keys()、values()和entires()

【推薦學習:javascript高級教程】

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
另类av一区二区| 亚洲日韩视频| 久久av网址| 欧美视频一区| 国模精品一区| 日韩三区在线| 午夜视频精品| 日韩一区二区三区四区五区| 日本欧美一区二区| 欧美亚洲tv| 久久亚洲人体| 欧美羞羞视频| 国精品一区二区| 伊人久久亚洲热| 三级精品视频| 一区二区国产在线| 国产精品九九| 久久精品欧美一区| 亚洲色图国产| 日本成人手机在线| 国产精品15p| 9999国产精品| 久久国产成人午夜av影院宅| 免播放器亚洲| 国产欧美视频在线| 91av亚洲| 亚洲欧美日本国产专区一区| 国产精品网站在线看| | 欧美一级专区| 国产精品久久久久av蜜臀| 视频在线不卡免费观看| 女人天堂亚洲aⅴ在线观看| 青青草国产成人99久久| 日韩欧美二区| 久热综合在线亚洲精品| 久久亚洲国产精品尤物| 美女网站久久| 日韩一区亚洲二区| 久久国产三级| 性欧美xxxx免费岛国不卡电影| 日韩福利视频网| 精品国产欧美日韩| 先锋亚洲精品| 精品国产乱码久久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 精品三级av在线导航| 日韩在线网址| 亚洲精品91| 理论片午夜视频在线观看| 日韩国产在线一| 九九在线精品| 精品资源在线| 日韩有码av| 一区二区视频欧美| 高清不卡一区| 国产精品调教| 视频一区二区三区在线| se01亚洲视频| 国产一区不卡| 国产精品高清一区二区| 日韩一区二区三区在线看| 欧美日韩免费观看一区=区三区| 成人在线免费观看91| 国产欧美69| 91福利精品在线观看| 蜜桃视频免费观看一区| 亚洲福利一区| 日韩在线观看一区| 福利一区在线| 黄色欧美在线| 精品精品99| 国产精品1区在线| 国产精品一区二区三区美女| 久久国产三级| 国产精品一区二区av日韩在线| 亚洲三级观看| 综合激情网...| 亚洲精品在线a| 日本中文字幕不卡| 日韩一区二区三区免费视频| 亚洲日产国产精品| 日本成人在线网站| 日韩av中文字幕一区二区| 亚洲欧美网站在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 性一交一乱一区二区洋洋av| 亚洲成人三区| 最新国产拍偷乱拍精品| 国产视频一区在线观看一区免费| 日韩视频在线一区二区三区 | 石原莉奈在线亚洲二区| 亚洲男女av一区二区| 日韩视频在线一区二区三区| 国产精品美女久久久浪潮软件| 在线国产一区| 另类国产ts人妖高潮视频| 亚洲欧洲国产精品一区| 日本强好片久久久久久aaa| 日本午夜精品一区二区三区电影| 日韩精品亚洲专区在线观看| 国产日产精品_国产精品毛片| 国产精品**亚洲精品| 福利欧美精品在线| 四虎884aa成人精品最新| 香蕉精品视频在线观看| 蜜臀久久99精品久久久久宅男 | 欧美精品影院| 欧美激情在线精品一区二区三区| 久久精品国产网站| 成人羞羞在线观看网站| 亚洲精品电影| 日韩av网站在线免费观看| 国产精品久久亚洲不卡| 国产福利电影在线播放| 欧美.日韩.国产.一区.二区 | 国内在线观看一区二区三区| 久久精品一区二区国产| 中文无码日韩欧| 国产精品字幕| 国内一区二区三区| 成人影视亚洲图片在线| 欧美aa一级| 亚洲一区二区免费看| 精品美女在线视频| 亚洲手机在线| 日欧美一区二区| 国产一区丝袜| 在线一区欧美| 91伊人久久| 97精品中文字幕| 久久国产精品久久久久久电车| 久久国产精品色av免费看| 久久电影tv| 综合亚洲自拍| 欧美gv在线| 欧美日韩一区二区三区不卡视频| 福利一区二区三区视频在线观看| 日韩视频一区| 欧美精品成人| aa亚洲婷婷| 久久久亚洲欧洲日产| 国产精品腿扒开做爽爽爽挤奶网站| 91精品国产自产在线丝袜啪| 日韩精品中文字幕第1页| 亚洲人妖在线| 成人日韩在线| 亚洲精品美女91| 久久久久一区| 国产日产精品_国产精品毛片 | 激情婷婷久久| 国产欧美一区二区色老头| 国产精品99免费看| 国产日韩一区二区三区在线| 国产精品av久久久久久麻豆网| 国产精品视频一区二区三区 | 久久精品国产网站| 老牛影视一区二区三区| 欧美激情国产在线| 日韩精品导航| 亚洲欧美日韩国产综合精品二区| 久久精品三级| 日本成人在线网站| 99国产精品视频免费观看一公开 | 国产精品视频一区二区三区| 欧美日韩国产高清| 欧美www视频在线观看| 日本中文字幕一区二区视频| 免费毛片在线不卡| 日本免费一区二区三区四区| 国产精成人品2018| 日韩精品国产欧美| 香蕉成人久久| 精品一区毛片| 久久久久久自在自线| 欧美视频一区| 综合欧美精品| 国产精品毛片| 午夜视频精品| 国户精品久久久久久久久久久不卡 | 黄色日韩在线| 99久久www免费| 精品国产亚洲日本| 国产精品白丝久久av网站| 四虎在线精品| 国产亚洲在线| 91久久亚洲| 亚洲精品成人| 精品一区欧美| 欧美~级网站不卡| 91精品啪在线观看国产18| 水蜜桃久久夜色精品一区| 精品视频亚洲| 美女高潮久久久| 国产欧美在线| 国产精品一区二区三区美女| 日韩精品a在线观看91| 中文字幕日韩亚洲| 在线一区二区三区视频| 美女91精品|