首页
/
每日頭條
/
職場
/
web前端html面試題及答案
web前端html面試題及答案
更新时间:2025-07-12 14:31:37

  簡答題 1、什麼是防抖和節流?有什麼區别?如何實現?

  參考答案

  防抖

  觸發高頻事件後n秒内函數隻會執行一次,如果n秒内高頻事件再次被觸發,則重新計算時間

  思路: 每次觸發事件時都取消之前的延時調用方法

  web前端html面試題及答案(前端經典面試題)(1)

  節流

  高頻事件觸發,但在n秒内隻會執行一次,所以節流會稀釋函數的執行頻率

  思路: 每次觸發事件時都判斷當前是否有等待執行的延時函數

  web前端html面試題及答案(前端經典面試題)(2)

  2、 get請求傳參長度的誤區、get和post請求在緩存方面的區别

  誤區:我們經常說get請求參數的大小存在限制,而post請求的參數大小是無限制的。

  參考答案

  實際上HTTP 協議從未規定 GET/POST 的請求長度限制是多少。對get請求參數的限制是來源與浏覽器或web服務器,浏覽器或web服務器限制了url的長度。為了明确這個概念,我們必須再次強調下面幾點:

  HTTP 協議 未規定 GET 和POST的長度限制GET的最大長度顯示是因為 浏覽器和 web服務器限制了 URI的長度不同的浏覽器和WEB服務器,限制的最大長度不一樣要支持IE,則最大長度為2083byte,若隻支持Chrome,則最大長度 8182byte 補充補充一個get和post在緩存方面的區别:

  get請求類似于查找的過程,用戶獲取數據,可以不用每次都與數據庫連接,所以可以使用緩存。post不同,post做的一般是修改和删除的工作,所以必須與數據庫交互,所以不能使用緩存。因此get請求适合于請求緩存。 3、模塊化發展曆程

  可從IIFE、AMD、CMD、CommonJS、UMD、webpack(require.ensure)、ES Module、script type="module" 這幾個角度考慮。

  參考答案

  模塊化主要是用來抽離公共代碼,隔離作用域,避免變量沖突等。

  IIFE: 使用自執行函數來編寫模塊化,特點:在一個單獨的函數作用域中執行代碼,避免變量沖突

  web前端html面試題及答案(前端經典面試題)(3)

  AMD: 使用requireJS 來編寫模塊化,特點:依賴必須提前聲明好

  web前端html面試題及答案(前端經典面試題)(4)

  CMD: 使用seaJS 來編寫模塊化,特點:支持動态引入依賴文件

  web前端html面試題及答案(前端經典面試題)(5)

  CommonJS: nodejs 中自帶的模塊化。

  web前端html面試題及答案(前端經典面試題)(6)

  UMD:兼容AMD,CommonJS 模塊化語法。

  webpack(require.ensure):webpack 2.x 版本中的代碼分割。

  ES Modules: ES6 引入的模塊化,支持import 來引入另一個 js 。

  web前端html面試題及答案(前端經典面試題)(7)

  4、npm 模塊安裝機制,為什麼輸入 npm install 就可以自動安裝對應的模塊?

  參考答案

  1. npm 模塊安裝機制:

  發出npm install命令查詢node_modules目錄之中是否已經存在指定模塊若存在,不再重新安裝若不存在npm 向 registry 查詢模塊壓縮包的網址下載壓縮包,存放在根目錄下的.npm目錄裡解壓壓縮包到當前項目的node_modules目錄 2. npm 實現原理

  輸入 npm install 命令并敲下回車後,會經曆如下幾個階段(以 npm 5.5.1 為例):

  執行工程自身 preinstall當前 npm 工程如果定義了 preinstall 鈎子此時會被執行。确定首層依賴模塊首先需要做的是确定工程中的首層依賴,也就是 dependencies 和 devDependencies 屬性中直接指定的模塊(假設此時沒有添加 npm install 參數)。工程本身是整棵依賴樹的根節點,每個首層依賴模塊都是根節點下面的一棵子樹,npm 會開啟多進程從每個首層依賴模塊開始逐步尋找更深層級的節點。獲取模塊獲取模塊是一個遞歸的過程,分為以下幾步:獲取模塊信息。在下載一個模塊之前,首先要确定其版本,這是因為 package.json 中往往是 semantic version(semver,語義化版本)。此時如果版本描述文件(npm-shrinkwrap.json 或 package-lock.json)中有該模塊信息直接拿即可,如果沒有則從倉庫獲取。如 packaeg.json 中某個包的版本是 ^1.1.0,npm 就會去倉庫中獲取符合 1.x.x 形式的最新版本。獲取模塊實體。上一步會獲取到模塊的壓縮包地址(resolved 字段),npm 會用此地址檢查本地緩存,緩存中有就直接拿,如果沒有則從倉庫下載。查找該模塊依賴,如果有依賴則回到第1步,如果沒有則停止。模塊扁平化(dedupe)上一步獲取到的是一棵完整的依賴樹,其中可能包含大量重複模塊。比如 A 模塊依賴于 loadsh,B 模塊同樣依賴于 lodash。在 npm3 以前會嚴格按照依賴樹的結構進行安裝,因此會造成模塊冗餘。從 npm3 開始默認加入了一個 dedupe 的過程。它會遍曆所有節點,逐個将模塊放在根節點下面,也就是 node-modules 的第一層。當發現有重複模塊時,則将其丢棄。這裡需要對重複模塊進行一個定義,它指的是模塊名相同semver 兼容。每個 semver 都對應一段版本允許範圍,如果兩個模塊的版本允許範圍存在交集,那麼就可以得到一個兼容版本,而不必版本号完全一緻,這可以使更多冗餘模塊在 dedupe 過程中被去掉。比如 node-modules 下 foo 模塊依賴 lodash@^1.0.0,bar 模塊依賴 lodash@^1.1.0,則 ^1.1.0 為兼容版本。而當 foo 依賴 lodash@^2.0.0,bar 依賴 lodash@^1.1.0,則依據 semver 的規則,二者不存在兼容版本。會将一個版本放在 node_modules 中,另一個仍保留在依賴樹裡。舉個例子,假設一個依賴樹原本是這樣:node_modules-- foo---- lodash@version1-- bar---- lodash@version2假設 version1 和 version2 是兼容版本,則經過 dedupe 會成為下面的形式:node_modules-- foo-- bar-- lodash(保留的版本為兼容版本)假設 version1 和 version2 為非兼容版本,則後面的版本保留在依賴樹中:node_modules-- foo-- lodash@version1-- bar---- lodash@version2安裝模塊這一步将會更新工程中的 node_modules,并執行模塊中的生命周期函數(按照 preinstall、install、postinstall 的順序)。執行工程自身生命周期當前 npm 工程如果定義了鈎子此時會被執行(按照 install、postinstall、prepublish、prepare 的順序)。最後一步是生成或更新版本描述文件,npm install 過程完成。 5、ES5的繼承和ES6的繼承有什麼區别?

  6、定時器的執行順序或機制?

  7、['1','2','3'].map(parseInt) 輸出什麼,為什麼?

  8、Doctype作用? 嚴格模式與混雜模式如何區分?它們有何意義?

  9、fetch發送2次請求的原因

  http、浏覽器對象 1、HTTPS 握手過程中,客戶端如何驗證證書的合法性

  2、TCP三次握手和四次揮手

  3、img iframe script 來發送跨域請求有什麼優缺點?

  4、http和https的區别?

  5、什麼是Bom?有哪些常用的Bom屬性?

  6、Cookie、sessionStorage、localStorage的區别

  7、Cookie如何防範XSS攻擊

  8、浏覽器和 Node 事件循環的區别?

  9、簡述HTTPS中間人攻擊

  10、說幾條web前端優化策略

  11、你了解的浏覽器的重繪和回流導緻的性能問題

  react、Vue 1、寫 React / Vue 項目時為什麼要在列表組件中寫 key,其作用是什麼?

  2、React 中 setState 什麼時候是同步的,什麼時候是異步的?

  3、下面輸出什麼

  4、為什麼虛拟dom會提高性能?

  css 1、分析比較 opacity: 0、visibility: hidden、display: none 優劣和适用場景

  2、清除浮動的方式有哪些?比較好的是哪一種?

  3、css sprite 是什麼,有什麼優缺點

  4、link與@import的區别

  5、display: block;和display: inline;的區别

  6、容器包含若幹浮動元素時如何清理浮動

  7、PNG,GIF,JPG 的區别及如何選

  8、display,float,position 的關系

  9、如何水平居中一個元素

  JavaScript 1、JS有幾種數據類型,其中基本數據類型有哪些?

  2、Promise 構造函數是同步執行還是異步執行,那麼 then 方法呢?

  3、JS的四種設計模式

  4、列舉出集中創建實例的方法

  5、簡述一下前端事件流

  6、Function.proto(getPrototypeOf)是什麼?

  7、簡述一下原型 / 構造函數 / 實例

  8、簡述一下JS繼承,并舉例

  9、函數柯裡化

  10、說說bind、call、apply 區别?

  11、箭頭函數的特點

  程序閱讀題 1、下面程序輸出的結果是什麼?

  web前端html面試題及答案(前端經典面試題)(8)

  A: Lydia 和 undefinedB: Lydia 和 ReferenceErrorC: ReferenceError 和 21D: undefined 和 ReferenceError 2、下面代碼輸出什麼

  web前端html面試題及答案(前端經典面試題)(9)

  3、下面的輸出結果是什麼?

  web前端html面試題及答案(前端經典面試題)(10)

  A: orangeB: purpleC: greenD: TypeError 4、下面代碼中什麼時候會輸出1?

  web前端html面試題及答案(前端經典面試題)(11)

  5、下面的輸出結果是什麼?

  web前端html面試題及答案(前端經典面試題)(12)

  6、下面代碼輸出的結果是什麼?

  web前端html面試題及答案(前端經典面試題)(13)

  7、下面代碼的輸出是什麼?

  web前端html面試題及答案(前端經典面試題)(14)

  8、下面代碼的輸出是什麼?

  web前端html面試題及答案(前端經典面試題)(15)

  9、下面代碼的輸出是什麼?

  web前端html面試題及答案(前端經典面試題)(16)

  10、下面代碼的輸出是什麼?

  web前端html面試題及答案(前端經典面試題)(17)

  11、下面代碼的輸出結果是什麼?

  web前端html面試題及答案(前端經典面試題)(18)

  因文章篇幅較長,不能把答案一一寫出

  最後

  小編是一個有着5年工作經驗的前端工程師,關于web前端有一個完整學習web前端的路線,學習材料和工具。需要的夥伴可以私信我,發送“前端”就可以獲取領取地址,免費送給大家。對于學習web前端有任何問題(學習方法,學習效率,如何就業)都可以問我。希望你也能憑自己的努力,成為下一個優秀的程序員!

  ,

Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
papi醬主要以什麼變現
papi醬主要以什麼變現
本文原創首發于今日頭條《明星大偵探》第五季在萬衆期待之下開播了。作為一個辦了五季的老綜藝,這幾年下來不僅積攢了好口碑,也有了一票忠實的觀衆。所以當新一季打頭陣的不是原班人馬,就讓粉絲很是失望,特别是王鷗和鬼鬼的位置,居然莫名其妙的被一個過氣...
2025-07-12
直流馬達正反轉接線圖
直流馬達正反轉接線圖
1直流電機的構造直流電動機雖然比三相交流異步電動機結構複雜,維修也不便,但由于它的調速性能較好和起動轉矩較大,因此,對調速要求較高的生産機械或者需要較大起動轉矩的生産機械往往采用直流電動機驅動。直流電機的優點:(1)調速性能好,調速範圍廣,...
2025-07-12
縣領導深入基層調研六穩六保工作
縣領導深入基層調研六穩六保工作
縣領導深入基層調研六穩六保工作?來源:本溪日報-本溪網本報訊【記者孫君】7月6日,市委副書記、市長田樹槐帶領市發改委、市工信局、市農業農村局等相關部門負責同志深入桓仁滿族自治縣,就“抓六保、促六穩”工作進行調研,下面我們就來聊聊關于縣領導深...
2025-07-12
保研意味着什麼看完你就知道了
保研意味着什麼看完你就知道了
當年在大學裡,我是學習比較努力的那一類,畢業時所有科目平均分有91分。在學院裡排名靠前,有保研資格,記得當時正在大四實習,導員打電話說讓我準備保研面試,有二十多天的準備時間。當時我猶豫了一下還是回答放棄,因為我的目标很明确,畢業要找工作。我...
2025-07-12
明天石家莊限行尾号是多少
明天石家莊限行尾号是多少
民生關注行動改變城市轉眼間“十一”小長假已近尾聲明天就要上班了小編有幾件事要提醒大家!本周六(10月9日)要上班根據國家放假調休安排10月9日(星期六)需要上班可别忘了上好鬧鐘呀!節後上班第一天,石家莊限号有調整2021年10月4日至202...
2025-07-12
Copyright 2023-2025 - www.tftnews.com All Rights Reserved