gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

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

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

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

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

我:呃~,好的,三者的作用區別總結如下:

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

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 = [] // 報錯
登錄后復制

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

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

深拷貝:新數據與原數據互不打擾。

// 擴展運算符在一維數組中是屬于深拷貝,在多維數組中屬于淺拷貝 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
登錄后復制

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

// 標準的深拷貝 => 引用數據類型(數組,對象) function deepClone(source){     const targetObj = source.constructor === Array ? [] : {}     for(let keys in source){         if(source.hasOwnProperty(keys)){             // 引用數據類型             if(source[keys] && typeof source[keys] === 'object'){                 targetObj[keys] = source[keys].constructor === Array ? [] : {}                 // 遞歸                 targetObj[keys] = deepClone(source[keys])             }else{                 // 基本數據類型,直接賦值                 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)// 張三 李四
登錄后復制

淺拷貝:新數據會影響原數據。

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

說白了,深拷貝是重新獲得一個新的數據,且和原來的數據沒有任何關系;淺拷貝雖然能得到一個新的數據,但是和原來的數據仍有一定的聯系。

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

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

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

www:服務器

baidu.com:域名

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

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

具體實現過程

  • 1. url解析:判斷是搜索內容還是請求URL

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

  • 3. DNS解析

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

  • 5. 合成請求頭信息,發送http請求

  • 6. 處理響應信息

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

  • 8. 如果響應狀態碼301,則重定向

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

面試官:說一說cookie sessionStorage localStorage 區別?

我:呃~,好的,他們之間的關系如下:

相同點

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

區別

  • 1.cookie由服務器或前端寫入, sessionStorage以及localStorage都是由前端寫入

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

  • 3.cookie存儲空間大小約4kb, sessionStorage及localStorage空間比較大,大約5M

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

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

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

面試官:說一說JS數據類型有哪些,區別是什么?

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

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

  • 引用類型: object、array

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

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

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

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

我:呃~,內層函數引用外層函數中變量,這些變量的集合就是閉包。

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

  • 解決的問題:能夠讓函數作用域中的變量在函數執行結束之后不被銷毀,同時也能在函數外部可以訪問函數內部的局部變量。

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

  • 閉包的應用,能夠模仿塊級作用域,能夠實現柯里化,在構造函數中定義特權方法、Vue中數據響應式Observer中使用閉包等。

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

我:呃~,好的,總結如下:

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

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

3. constructor.name(根據構造器判斷),不能判斷null數據類型

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

面試官:說一說null 和 undefined 的區別,如何讓一個屬性變為null

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

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

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

面試官:說一說偽數組和數組的區別?

我:呃~,好的,總結如下:

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

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

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

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

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
国产av第一区| 黄频视频在线观看| 97成人在线免费视频| 一区二区三区国产好的精华液| 久久成人免费观看| 久久国产午夜精品理论片最新版本| 天堂中文视频在线| 成人在线观看黄| 日韩精品一区二区三区久久| 免费拍拍拍网站| 成人午夜免费在线视频| 91免费国产精品| 日韩精品免费一区| 大伊香蕉精品视频在线| 日本aa在线观看| 成人一对一视频| 日韩a∨精品日韩在线观看| 激情小视频网站| 青青草成人免费在线视频| 国产av人人夜夜澡人人爽麻豆| 樱空桃在线播放| 97超碰在线人人| 久久久精品在线视频| 福利在线一区二区三区| theporn国产精品| 欧美 国产 精品| 国产免费黄色小视频| 国产xxxxx视频| 97人人模人人爽人人澡| 欧美午夜性视频| 成人一级片网站| www.桃色.com| 国产精品专区在线| 成年网站在线播放| 免费看日本黄色| 日本www.色| 成人av在线不卡| 国内自拍视频一区| 国产1区2区3区中文字幕| 午夜视频在线瓜伦| 黄色网zhan| 天天爽天天爽夜夜爽| 免费看黄色a级片| 一区二区三区 日韩| 一本大道东京热无码aⅴ| 精品久久久久久无码国产| 欧洲在线免费视频| 午夜视频在线瓜伦| 久久国产精品免费观看| 免费激情视频在线观看| 国产 欧美 日韩 一区| 一本岛在线视频| 男人天堂999| 成人免费观看在线| 日本特级黄色大片| 91蝌蚪视频在线观看| cao在线观看| 成人在线免费观看网址| 成人免费在线观看视频网站| 久久手机在线视频| 青青草原网站在线观看| 91国内在线播放| 亚洲一区在线不卡| 成人在线观看a| 免费av手机在线观看| 国产91视频一区| 中文字幕一区二区三区四区五区人 | 欧美极品少妇无套实战| 国产日本欧美在线| 超碰人人草人人| 日本中文字幕观看| 五月天婷婷亚洲| 亚洲女人在线观看| 中文字幕制服丝袜在线| 九九九久久久久久久| 国产农村妇女精品久久| 黄色a级三级三级三级| 黄色片免费网址| 99精品视频网站| 激情五月婷婷六月| 男人操女人免费软件| 老熟妇仑乱视频一区二区| 国产精品亚洲二区在线观看| 男人插女人下面免费视频| 日本久久久久久久久久久久| 国产乱码一区二区三区四区| 女人床在线观看| 男人日女人下面视频| 在线免费av播放| 91免费国产精品| 激情网站五月天| 亚洲高清视频免费| 欧美日韩黄色一级片| 人妻少妇被粗大爽9797pw| 天天爽人人爽夜夜爽| 手机av在线网站| 国产极品尤物在线| 亚洲美女性囗交| 青青在线视频免费观看| 亚洲成熟丰满熟妇高潮xxxxx| 少妇激情一区二区三区| 国产精品一区在线免费观看| 自慰无码一区二区三区| 亚洲视频第二页| 青青草国产免费| 中文字幕 欧美日韩| 成品人视频ww入口| www.com黄色片| 欧美精品久久久久久久免费| 亚洲激情在线观看视频| 亚洲国产精品女人| 日本激情视频在线| 日韩精品一区二区在线视频| 一区二区三区 日韩| 91丨porny丨探花| 97在线免费视频观看| 精品久久久噜噜噜噜久久图片 | 青春草国产视频| 国产5g成人5g天天爽| 国产精品少妇在线视频| 欧美 日韩 亚洲 一区| 男人添女人下部视频免费| 黑森林精品导航| 亚洲色图久久久| 国产精品少妇在线视频| 精品少妇一区二区三区在线| 最新av网址在线观看| 视频在线观看免费高清| 妓院一钑片免看黄大片| 天堂av在线网站| 国产主播在线看| 日本日本19xxxⅹhd乱影响| 国产一区二区四区| 亚洲中文字幕无码av永久| 欧美三级午夜理伦三级老人| 手机在线国产视频| 九九热免费在线观看| 福利片一区二区三区| 高潮一区二区三区| 亚洲第一区第二区第三区| 91制片厂毛片| 日韩av在线中文| 成年人在线观看视频免费| www.国产在线视频| 99色精品视频| 每日在线更新av| 黄色a级片免费看| 国产一二三四五| 久久久久久久午夜| 欧美v在线观看| 人妻熟妇乱又伦精品视频| 在线观看免费不卡av| 在线观看成人免费| 91看片淫黄大片91| 日本中文字幕一级片| 男人添女荫道口女人有什么感觉| 在线视频一二三区| 福利在线小视频| 男人操女人免费软件| 国产乱子伦农村叉叉叉| 日韩成人av免费| www.18av.com| 欧美精品久久久久久久自慰| 九色自拍视频在线观看| 亚洲精品在线网址| 日本一本二本在线观看| 男人操女人免费| 久热精品在线播放| 亚洲精品在线视频播放| 2022中文字幕| av动漫在线观看| www.精品在线| 国产 porn| 黄色av网址在线播放| 99热手机在线| 男女激烈动态图| 亚州精品一二三区| 亚洲av综合色区| 国产自偷自偷免费一区| 国产对白在线播放| 青青草原国产在线视频| a在线观看免费视频| av在线免费看片| 国产激情在线观看视频| 日韩国产小视频| 日本中文字幕网址| 少妇一级淫免费播放| 天堂av在线8| 欧美综合在线播放| 欧美性受xxxxxx黑人xyx性爽| 亚洲一区 在线播放| 少妇人妻互换不带套| 中文字幕第三区| 成人中文字幕av| 欧美丰满熟妇bbbbbb百度| 亚欧精品在线视频| 三级在线视频观看| 亚洲免费视频播放| 中文字幕第50页| 亚洲精品成人在线播放|