1、什么是防抖和節流?有什么區別?如何實現?
防抖:觸發高頻事件后N秒內函數只會執行一次,如果N秒高頻事件再次被觸發,則重新計算時間。(a時間觸發,5秒內執行一次,但是第4秒的時候,又觸發,時間又重置為5秒,待5秒后,觸發事件)。
節流:高頻事件觸發,但在n秒內只會執行一次,所以節流會稀釋函數的執行頻率。(5秒內執行一次時間,在第4秒的時候,有觸發了該事件,事件不會觸發)。
思路:每次觸發事件時,都會平拿不到那當前是否有等待執行的延時函數。
2、get傳參長度的誤區,get和post請求在緩存方面的區別
誤區:通常以為get請求傳參大小存在限制,而post請求的傳參大小在2m以內;
注意:
? ? ? ? http協議未規定get和post傳參長度的限制。
? ? ? ? get的最大長度因為瀏覽器和web服務器限制了uri的長度。
? ? ? ? 不同的瀏覽器和web服務器,限制的最大長度不一樣。
? ? ? ? 如果要求支持ie,最大長度限制為2083byte(2M),如只支持谷歌瀏覽器,則最大長度為8182byte(8M)。
這一段擴大了認知。原來get不是協議限制了,是瀏覽器限制了;如果有一款瀏覽器不做長度限制,那就意味著,get請求不會受到限制;服務端限制uri;以下是nginx對uri請求體大小的限制:
http {client_max_body_size 100m; # 限制請求體大小為100MB
}
get 和 post緩存的區別
? ? ? ? get請求類似于查找過程,獲取數據,不用每次都連接數據庫,所以可以使用緩存。
? ? ? ? post一般用于修改和刪除工作,所以必須與數據交互,不能用緩存。
get 和 post請求方式的區別
? ? ? ? get 產生一個tcp數據包,而post產生兩個tcp數據包。
? ? ? ? get請求,瀏覽器會將header和data一起發送出去,服務器相應200。
? ? ? ? post請求,瀏覽器先發送header,服務端相應100;接著瀏覽器在大宋data,服務器相應200。
get和post請求差異很大,推薦在讀取數據時,用get;修改和刪除時,用post。
3、npm 安裝機制,為什么輸入npm install 就可以自動安裝對應的模塊?
? ? ? ? 1、發出npm install 命令,先查詢本地的node_modules目錄中是否存在指定模塊;
? ? ? ? 如果模塊存在,則不再重新安裝;
????????如果模塊不存在,從對應的registry查詢模塊壓縮的地址;如果存在,就下載壓縮包,存放到根目錄下的.npm目錄里;解壓壓縮包到當前項目的node_modules目錄里;
主要閱讀的文章是:
前端經典面試題 30道_前端面試題-CSDN博客