web前端 面試問題總結2020

2022-08-23 13:33:11 字數 2631 閱讀 4914

1. var let const 的區別,以及變數提公升,函式提公升

1.不存在塊作用域

2.可以多次宣告(覆蓋)

3.存在變數提公升:當var a = 1;時候,會先在作用域的最頂端,var a;然後在var a = 1;的位置給a賦值

1.存在塊作用域

經典例題:

for迴圈給多個dom新增時間,輸出for迴圈的角標i,如果用var宣告,因為沒有塊作用域,var會變數提公升到外層作用域最頂端,而多次i賦值,最後只儲存了最後一次的值,改成let可以解決這個問題(這就是強行解釋,具體為什麼let可以解決還需要好好看看let)

2.不可以多次宣告

包括function a() {};存在後不能let const a

變數提公升和函式提公升排序的問題需要理解

2.async/await 原理

3.主程序,巨集任務,微任務

巨集任務:macrotask 包括:settimeout、setinterval、postmessage等。

微任務:microtask 包括:promise.then、await後面的**。

事件執行順序:

1.先執行主程序中同步的**,promise中的**為同步**

2.主程序**執行完畢後執行微任務中的**,從上到下乙個乙個放到主程序中執行。

3.微任務執行完畢之後從上到下把巨集任務中的**放到主程序中執行,如果這期間產生微任務,則執行完當前巨集任務後重新執行微任務佇列,然後繼續回到執行巨集任務佇列

4.重複 2,3

方法一 postmessage

// top 是目標iframe,可以使iframe的name屬性;target是目標iframe的網域名稱

top.postmessage('資料', target);

// e.currenttarget.parent是他的父iframe

window.addeventlistener('message', (e) => );

postmessage優點

1.可以跨域傳送訊息

postmessage缺點

1.低版本瀏覽器不支援

方法二 通過呼叫目標iframe的方法

// 父傳子

target.window.fun()

// 子傳父

window.parent.window.fun()

優點缺點

1.不能跨域

2.必須等頁面載入完畢才能呼叫

http常用的method

簡單的請求

head,get, post

get:

1.引數可見

2.可以快取

3.會生成歷史記錄

4.長度有限制

post:

1.引數不可見

2.不可以快取

3.不會生成歷史記錄

4.不限制長度

5.資料型別不限制

6.會先提交head請求,得到100響應後才能繼續提交

head:

和get類似,但是不會返回響應主體

預檢請求

options: 主要目的是獲取伺服器允許的請求方式

其他請求

put和patch

delete:刪除資源

tcp和udp(oicq,nds)區別

1.tcp面向連線,必須先建立連線;udp傳送資料之前不需要連線

2.tcp是可靠的鏈結,不會丟失重複,按順序到達;udp不保證可靠

3.udp效率更高,可以實現實時傳輸和廣播通訊

4.tcp是點對點,udp都可以

5.tcp對系統資源有要求,udp要求相對較小

tcp過程

1.建立socket socket();

2.設定socket屬性,setsocketopt() 可選

3.繫結 ip位址,埠號

4.開啟監聽 listen()

5.接收客戶端的鏈結, accept()

6.收發資料 send()

7.關閉連線

8.關閉監聽

udp過程

1.建立socket

2.設定socket屬性

3.繫結ip,埠到socket上 可選

4.迴圈的接收資料

5.關閉連線

websocket和socket

socket其實是控制傳輸的介面,底層是操作tcp或者udp

websocket是應用層的協議,保持連線不斷開

node伺服器優缺點

優點:事件驅動,是的輸入輸出效能很高

缺點:cpu計算差,比如做很多計算操作,**執行效率要求高,所以用底層的語言來做,比如c

io密集型:需要處理比較多的任務

解釋型語言和編譯型語言

require和import

require是commonjs規範,執行時候載入

import是es6規範,是編譯時候載入

hash和history

監聽hash window.onhashchange

監聽history window.onreplacestate

前端面試 問題總結

1 普通函式 箭頭函式,this的指向 乙個事件中,這兩個函式this的指向 2 處理scroll事件,來維護前端的效能 滾動會頻發觸發scroll事件,所以設定乙個時間,規定在此時間內scroll時間被觸發的次數,使用settimeout 注意重點需要在settimeout之前清除上一次返回的id...

9 20 前端面試問題總結

vue已經單獨寫出來了 css畫三角形 主要就是用border來畫三角形 這裡要用到偽類 nth child,平時經常遇到的偽類是 hover,如果對偽類還不熟悉的話請看 效果圖 只要弄清楚position relative與border就可以了,如果想要得到題目中給的效果,只需要每個span的to...

前端面試問題

1 對mvc的理解 簡單來說,mvc是一種流行的程式架構。mvc是 模型 model 檢視 view 控制器 control 的英文首字母的縮寫,核心思想是 檢視和使用者互動 通過事件導致控制器改變 控制器改變導致模型改變 或者控制器同時改變兩者 模型改變 導致檢視改變 或者檢視改變 潛在的從模型裡...