成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

2019前端面試題(持續(xù)更新)

K_B_Z / 1672人閱讀

摘要:是什么是異步編程的一種解決方案所謂,簡(jiǎn)單說(shuō)就是一個(gè)容器,里面保存著某個(gè)未來(lái)才會(huì)結(jié)束的事件通常是一個(gè)異步操作的結(jié)果。

最近也在準(zhǔn)備換工作了,然后收集了一些我覺(jué)得今年面試會(huì)遇到常見(jiàn)的問(wèn)題。

如果有機(jī)會(huì),記得也幫忙分享我一下。
2019的行情確實(shí)很糟糕??吹竭@么多人收藏點(diǎn)贊。我的內(nèi)心也是哇涼哇涼的。
我也給一些除了面試題之外的經(jīng)驗(yàn)吧

我相信不景氣也是相對(duì)的,提升自我也是必要的。我說(shuō)說(shuō)我最近在準(zhǔn)備些什么。

首先優(yōu)化自己的博客。有技術(shù)博客的求職者,必定會(huì)給面試官篩選簡(jiǎn)歷時(shí)一個(gè)很好的印象

針對(duì)你想求職的企業(yè)規(guī)模,乘著這段時(shí)間,深入的了解一些源碼。如中型企業(yè)大多都偏愛(ài)vue。我最近也在研究其中的源碼。

更高bigger的,可以在研究框架源碼中,得出一些經(jīng)驗(yàn),寫一套自己框架。目前我也正在準(zhǔn)備。

還有自己的npm的組件包。

1,講講淺拷貝、深拷貝之間的區(qū)別
核心:引用類型和非引用類型的拷貝結(jié)果是不同的

淺拷貝只是拷貝基本類型的數(shù)據(jù),如果父對(duì)象的屬性等于數(shù)組或另一個(gè)對(duì)象,那么實(shí)際上,子對(duì)象獲得的只是一個(gè)內(nèi)存地址,因此存在父對(duì)象被篡改的可能,淺拷貝只復(fù)制指向某個(gè)對(duì)象的指針,而不復(fù)制對(duì)象本身,新舊對(duì)象還是共享同一塊內(nèi)存

//簡(jiǎn)單的淺拷貝
var a = 1;
var b = a;//賦值
console.log(b) //1
a = 2;//改變a的值
console.log(b) //1

如果要實(shí)現(xiàn)深拷貝,用什么方法來(lái)實(shí)現(xiàn)

JSON.parse() + JSON.stringify()(缺點(diǎn):只能處理可以被枚舉的屬性);
for in 循環(huán)遞歸遍歷;

深拷貝就是能夠?qū)崿F(xiàn)真正意義上的數(shù)組和對(duì)象的拷貝。遞歸調(diào)用"淺拷貝"。(深拷貝會(huì)另外創(chuàng)造一個(gè)一模一樣的對(duì)象,新對(duì)象跟原對(duì)象不共享內(nèi)存,修改新對(duì)象不會(huì)改到原對(duì)象)

如果你想要實(shí)現(xiàn)支持setter和getter特性的拷貝,該怎么實(shí)現(xiàn)?

Object.defineproperties (定義屬性)、Object.getOwnPropertyDescriptors(es2017,獲取對(duì)象的多個(gè)屬性)、Object.getOwnPropertyDescriptor(老一點(diǎn),獲取對(duì)象的單個(gè)屬性的屬性),但babel可以解決。

2、原型鏈的prototype和__proto__的區(qū)別;

prototype 在 new 示例后會(huì)被轉(zhuǎn)為 __proto__

__proto__是非標(biāo)準(zhǔn)化的;

所有東西的原型鏈向上延伸到原型鏈的頂端,是什么;

Object.prototype.__proto__,結(jié)果是null.

Function本身就是函數(shù),
Function.__proto__
是標(biāo)準(zhǔn)的內(nèi)置對(duì)象Function.prototype,
Function.prototype.__proto__
是標(biāo)準(zhǔn)的內(nèi)置對(duì)象Object.prototype
3、如果想實(shí)現(xiàn)繼承,說(shuō)幾種你知道的方法?

原型鏈繼承、構(gòu)造繼承、實(shí)例繼承、拷貝繼承、組合繼承、寄生組合繼承

原型鏈繼承

3、var、let、const的區(qū)別;

var 會(huì)變量提升;

let 聲明的變量只在它所在的代碼塊有效;

const 聲明后不能再修改其指向的目標(biāo),假如const 指向的是一個(gè)對(duì)象/數(shù)組,那么雖然不能更改指向目標(biāo),但是可以更改對(duì)象和數(shù)組內(nèi)部的值;

進(jìn)階一:說(shuō)到變量提升,class 聲明一個(gè)類時(shí),存在變量提升么?為什么?

不存在。因?yàn)橐奖泐惖睦^承,先聲明子類再聲明父類;

進(jìn)階二:const 聲明一個(gè)對(duì)象,如何讓對(duì)象內(nèi)部的屬性的值也無(wú)法改變?

使用Object.freeze()鎖死(es5新增特性);

對(duì)數(shù)組等引用類型的值,還是能修改的;

進(jìn)階三:全局作用域?函數(shù)作用域?塊級(jí)作用域?作用域鏈?

js有哪些基本數(shù)據(jù)類型?

Boolean、Null、Undefined、Number、String、Object;

Symbol(es6新增)

進(jìn)階:es6新增的原型數(shù)據(jù)類型Symbol,特點(diǎn)是什么;

表示獨(dú)一無(wú)二的值;

聲明時(shí)不能使用new Symbol(),而是 Symbol();

聲明時(shí)可以加參數(shù),用于描述;

作為key時(shí)不能被遍歷;

進(jìn)階2:如何聲明兩個(gè)相等的Symbol變量?

使用Symbol.for,參數(shù)相同時(shí);

let a = Symbol.for("a");
let b = Symbol.for("a");
a === b; // true

#### Promise是什么?

* 是異步編程的一種解決方案;
* 所謂Promise,簡(jiǎn)單說(shuō)就是一個(gè)容器,里面保存著某個(gè)未來(lái)才會(huì)結(jié)束的事件(通常是一個(gè)異步操作)的結(jié)果。從語(yǔ)法上說(shuō),Promise 是一個(gè)對(duì)象,從它可以獲取異步操作的消息。

一般什么時(shí)候使用?

* 處理異步請(qǐng)求時(shí)使用,比如ajax請(qǐng)求;

有哪些狀態(tài)?

* 狀態(tài)有pending、resolved、rejected;

怎么捕獲他的錯(cuò)誤?

* 最后寫catch;
* then里面第二個(gè)參數(shù)可以捕獲;

如果內(nèi)部拋錯(cuò),但是沒(méi)有被捕獲,這個(gè)沒(méi)被捕獲的錯(cuò)誤接下來(lái)會(huì)發(fā)生什么事情?

* 冒泡;

能不能被try catch捕獲?為什么?

* 不能,因?yàn)槭钱惒骄幊獭?
能不能被window.onerror捕獲?

* 不能

new Promise((resolve,reject)=>throw new Error("a")).then(fn1).then(fn2,fn3).catch(fn4) 這個(gè)函數(shù),會(huì)執(zhí)行哪些函數(shù)
* fn3,沒(méi)了
4,從輸入U(xiǎn)RL到瀏覽器顯示頁(yè)面發(fā)生了什么。(特別注意)
這題可以了解一下,盡管面試時(shí)候造飛船,真的干活可能還是擰螺絲。

1.在瀏覽器中輸入url(解析IP地址)

2.應(yīng)用層DNS解析域名

3.應(yīng)用層客戶端發(fā)送HTTP請(qǐng)求

4.傳輸層TCP傳輸報(bào)文(3次握手)

5.網(wǎng)絡(luò)層IP協(xié)議查詢MAC地址

6.數(shù)據(jù)到達(dá)數(shù)據(jù)鏈路層

7.服務(wù)器接收數(shù)據(jù)

8.服務(wù)器響應(yīng)請(qǐng)求

9.服務(wù)器返回相應(yīng)文件

二、頁(yè)面渲染:現(xiàn)代瀏覽器渲染頁(yè)面的過(guò)程是這樣的:解析HTML以構(gòu)建DOM樹(shù) –> 構(gòu)建渲染樹(shù) –> 布局渲染樹(shù) –> 繪制渲染樹(shù)。

在瀏覽器還沒(méi)接收到完整的HTML文件時(shí),它就開(kāi)始渲染頁(yè)面了,在遇到外部鏈入的腳本標(biāo)簽或樣式標(biāo)簽或圖片時(shí),會(huì)再次發(fā)送HTTP請(qǐng)求重復(fù)上述的步驟。在收到CSS文件后會(huì)對(duì)已經(jīng)渲染的頁(yè)面重新渲染,加入它們應(yīng)有的樣式,圖片文件加載完立刻顯示在相應(yīng)位置。在這一過(guò)程中可能會(huì)觸發(fā)頁(yè)面的重繪或重排。
5、async、await 的使用場(chǎng)景是什么?

連續(xù)的異步請(qǐng)求,下一步的異步請(qǐng)求依賴于前一步的異步請(qǐng)求結(jié)果;
進(jìn)階一:假如有A、B、C三個(gè)異步請(qǐng)求,異步請(qǐng)求C依賴于異步請(qǐng)求A和B的結(jié)果(即A和B完成后再發(fā)起C),那么你會(huì)如何實(shí)現(xiàn)它?

Promise.all();
設(shè)置狀態(tài)分別標(biāo)記A和B,A、B完成后會(huì)去修改自己的完成標(biāo)記,然后檢查所有的狀態(tài)標(biāo)記,假如都是完成狀態(tài),然后去執(zhí)行異步請(qǐng)求C。

6、Promise是什么?

是異步編程的一種解決方案;
所謂Promise,簡(jiǎn)單說(shuō)就是一個(gè)容器,里面保存著某個(gè)未來(lái)才會(huì)結(jié)束的事件(通常是一個(gè)異步操作)的結(jié)果。從語(yǔ)法上說(shuō),Promise 是一個(gè)對(duì)象,從它可以獲取異步操作的消息。
一般什么時(shí)候使用?

處理異步請(qǐng)求時(shí)使用,比如ajax請(qǐng)求;
有哪些狀態(tài)?

狀態(tài)有pending、resolved、rejected;
怎么捕獲他的錯(cuò)誤?

最后寫catch;
then里面第二個(gè)參數(shù)可以捕獲;
如果內(nèi)部拋錯(cuò),但是沒(méi)有被捕獲,這個(gè)沒(méi)被捕獲的錯(cuò)誤接下來(lái)會(huì)發(fā)生什么事情?

冒泡;
能不能被try catch捕獲?為什么?

不能,因?yàn)槭钱惒骄幊獭?br>能不能被window.onerror捕獲?

不能
new Promise((resolve,reject)=>throw new Error("a")).then(fn1).then(fn2,fn3).catch(fn4) 這個(gè)函數(shù),會(huì)執(zhí)行哪些函數(shù) * fn3,沒(méi)了

7、數(shù)字計(jì)算:請(qǐng)問(wèn)在js中,輸入表達(dá)式 0.1 + 0.2 的結(jié)果是什么?

0.30000000000000004(能回答出來(lái)不是0.3,而是0.3后有若干個(gè)0和一個(gè)數(shù)字即可)

進(jìn)階一:為什么?

原因是浮點(diǎn)數(shù)和整數(shù),在存儲(chǔ)時(shí)的方法是不同的,因此相加的規(guī)則也是不同的;

進(jìn)階二:浮點(diǎn)數(shù)是怎么存儲(chǔ)的(本問(wèn)題比較難)(可以跳到進(jìn)階三,比本題簡(jiǎn)單)

而double類型就是雙精度浮點(diǎn)數(shù),這種指使用64位(8字節(jié))來(lái)存儲(chǔ)一個(gè)浮點(diǎn)數(shù)。

根據(jù)規(guī)定,這64位bit里,分為三部分:

第一部分(1bit):

符號(hào)位,表示正負(fù),正數(shù)為0,負(fù)數(shù)為1。

第二部分(11bit):

階碼位,也可以稱為指數(shù)位。

第三部分(52bit)

尾數(shù)位,即表示實(shí)際數(shù)字的。

假如正負(fù)符號(hào)的值為S,正數(shù)S為1,負(fù)數(shù)S為-1;
假如指數(shù)位表示的值為E(計(jì)算后),指數(shù)位表示的值為2的E次方;
假如尾數(shù)位表示的值為M,尾數(shù)位表示的值為M;

根據(jù)科學(xué)表示法,任何一個(gè)范圍內(nèi)的浮點(diǎn)數(shù)可以通過(guò)以下方法來(lái)表示:(別問(wèn)我為啥,我沒(méi)去谷歌……)

浮點(diǎn)數(shù) = S * Math.pow(2,E) * M;

進(jìn)階三:我們?cè)趯?shí)際開(kāi)發(fā)中,如果遇見(jiàn)了這種浮點(diǎn)數(shù)計(jì)算的情況,怎么處理比較合適?

8、移動(dòng)端開(kāi)發(fā)的時(shí)候,一般怎么實(shí)現(xiàn)自適應(yīng)?

rem

vw和vh

媒體查詢(bootstrap);

進(jìn)階一:他們的特點(diǎn)分別是什么?或者說(shuō)實(shí)現(xiàn)原理是什么?

rem 根據(jù) html 的 font-size;

vw是瀏覽器窗口寬度,vh是高度;

媒體查詢是根據(jù)瀏覽器窗口寬度或高度,進(jìn)行響應(yīng)式選擇顯示哪個(gè)css;

進(jìn)階二:彈出輸入框會(huì)發(fā)生定位錯(cuò)誤,fixed布局,怎么解決?

9、在我們將開(kāi)發(fā)好的頁(yè)面,進(jìn)入線上環(huán)境的時(shí)候,肯定要最大化性能優(yōu)化,那么我們常見(jiàn)的做法有哪些?

https://csspod.com/frontend-performance-best-practices/

gzip、雪碧圖、減少http請(qǐng)求數(shù)、減少DNS請(qǐng)求、避免重定向、緩存ajax請(qǐng)求、延遲加載、預(yù)加載、減少DOM數(shù)、使用框架例如React的虛擬DOM樹(shù)、減少DOM操作、使用CDN、減少 css 里 @import 寫法、

10、圖片使用 雪碧圖 和 base64字符串 你覺(jué)得哪個(gè)好?為什么?

雪碧圖可以緩存;

base64可以減少請(qǐng)求數(shù);

進(jìn)階一:如果你決定使用雪碧圖/base64字符串,你會(huì)怎么做?

webpack 配 url-loader(base64);

webpack 的雪碧圖插件 webpack-spritesmith;

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/108995.html

相關(guān)文章

  • 2019前端面試持續(xù)更新

    摘要:是什么是異步編程的一種解決方案所謂,簡(jiǎn)單說(shuō)就是一個(gè)容器,里面保存著某個(gè)未來(lái)才會(huì)結(jié)束的事件通常是一個(gè)異步操作的結(jié)果。 最近也在準(zhǔn)備換工作了,然后收集了一些我覺(jué)得今年面試會(huì)遇到常見(jiàn)的問(wèn)題。 如果有機(jī)會(huì),記得也幫忙分享我一下。2019的行情確實(shí)很糟糕??吹竭@么多人收藏點(diǎn)贊。我的內(nèi)心也是哇涼哇涼的。我也給一些除了面試題之外的經(jīng)驗(yàn)吧 我相信不景氣也是相對(duì)的,提升自我也是必要的。我說(shuō)說(shuō)我最近在準(zhǔn)...

    woshicixide 評(píng)論0 收藏0
  • 2019前端面試持續(xù)更新

    摘要:是什么是異步編程的一種解決方案所謂,簡(jiǎn)單說(shuō)就是一個(gè)容器,里面保存著某個(gè)未來(lái)才會(huì)結(jié)束的事件通常是一個(gè)異步操作的結(jié)果。 最近也在準(zhǔn)備換工作了,然后收集了一些我覺(jué)得今年面試會(huì)遇到常見(jiàn)的問(wèn)題。 如果有機(jī)會(huì),記得也幫忙分享我一下。2019的行情確實(shí)很糟糕。看到這么多人收藏點(diǎn)贊。我的內(nèi)心也是哇涼哇涼的。我也給一些除了面試題之外的經(jīng)驗(yàn)吧 我相信不景氣也是相對(duì)的,提升自我也是必要的。我說(shuō)說(shuō)我最近在準(zhǔn)...

    worldligang 評(píng)論0 收藏0
  • 前端最強(qiáng)面經(jīng)匯總

    摘要:獲取的對(duì)象范圍方法獲取的是最終應(yīng)用在元素上的所有屬性對(duì)象即使沒(méi)有代碼,也會(huì)把默認(rèn)的祖宗八代都顯示出來(lái)而只能獲取元素屬性中的樣式。因此對(duì)于一個(gè)光禿禿的元素,方法返回對(duì)象中屬性值如果有就是據(jù)我測(cè)試不同環(huán)境結(jié)果可能有差異而就是。 花了很長(zhǎng)時(shí)間整理的前端面試資源,喜歡請(qǐng)大家不要吝嗇star~ 別只收藏,點(diǎn)個(gè)贊,點(diǎn)個(gè)star再走哈~ 持續(xù)更新中……,可以關(guān)注下github 項(xiàng)目地址 https:...

    wangjuntytl 評(píng)論0 收藏0
  • LeetCode 攻略 - 2019 年 8 月上半月匯總(109 攻略)

    摘要:每天會(huì)折騰一道及以上題目,并將其解題思路記錄成文章,發(fā)布到和微信公眾號(hào)上。三匯總返回目錄在月日月日這半個(gè)月中,做了匯總了數(shù)組知識(shí)點(diǎn)?;蛘呃奖疚淖钕旅?,添加的微信等會(huì)根據(jù)題解以及留言內(nèi)容,進(jìn)行補(bǔ)充,并添加上提供題解的小伙伴的昵稱和地址。 LeetCode 匯總 - 2019/08/15 Create by jsliang on 2019-08-12 19:39:34 Recently...

    tracy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

K_B_Z

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<