国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

worldligang / 1875人閱讀

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

最近也在準備換工作了,然后收集了一些我覺得今年面試會遇到常見的問題。

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

我相信不景氣也是相對的,提升自我也是必要的。我說說我最近在準備些什么。

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

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

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

還有自己的npm的組件包。

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

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

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

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

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

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

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

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

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

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

__proto__是非標準化的;

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

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

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

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

原型鏈繼承

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

var 會變量提升;

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

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

進階一:說到變量提升,class 聲明一個類時,存在變量提升么?為什么?

不存在。因為要方便類的繼承,先聲明子類再聲明父類;

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

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

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

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

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

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

Symbol(es6新增)

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

表示獨一無二的值;

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

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

作為key時不能被遍歷;

進階2:如何聲明兩個相等的Symbol變量?

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

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

#### Promise是什么?

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

一般什么時候使用?

* 處理異步請求時使用,比如ajax請求;

有哪些狀態(tài)?

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

怎么捕獲他的錯誤?

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

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

* 冒泡;

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

* 不能,因為是異步編程。

能不能被window.onerror捕獲?

* 不能

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6、Promise是什么?

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

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

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

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

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

不能,因為是異步編程。
能不能被window.onerror捕獲?

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

7、數(shù)字計算:請問在js中,輸入表達式 0.1 + 0.2 的結(jié)果是什么?

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

進階一:為什么?

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

進階二:浮點數(shù)是怎么存儲的(本問題比較難)(可以跳到進階三,比本題簡單)

而double類型就是雙精度浮點數(shù),這種指使用64位(8字節(jié))來存儲一個浮點數(shù)。

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

第一部分(1bit):

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

第二部分(11bit):

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

第三部分(52bit)

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

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

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

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

進階三:我們在實際開發(fā)中,如果遇見了這種浮點數(shù)計算的情況,怎么處理比較合適?

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

rem

vw和vh

媒體查詢(bootstrap);

進階一:他們的特點分別是什么?或者說實現(xiàn)原理是什么?

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

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

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

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

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

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

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

10、圖片使用 雪碧圖 和 base64字符串 你覺得哪個好?為什么?

雪碧圖可以緩存;

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

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

webpack 配 url-loader(base64);

webpack 的雪碧圖插件 webpack-spritesmith;

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/53808.html

相關(guān)文章

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

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

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

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

    K_B_Z 評論0 收藏0
  • 前端最強面經(jīng)匯總

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

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

    摘要:每天會折騰一道及以上題目,并將其解題思路記錄成文章,發(fā)布到和微信公眾號上。三匯總返回目錄在月日月日這半個月中,做了匯總了數(shù)組知識點。或者拉到本文最下面,添加的微信等會根據(jù)題解以及留言內(nèi)容,進行補充,并添加上提供題解的小伙伴的昵稱和地址。 LeetCode 匯總 - 2019/08/15 Create by jsliang on 2019-08-12 19:39:34 Recently...

    tracy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<