一句話回答的前端面試題

該篇文章為一句話的答案,想看更詳細的面試題請看這篇>《前端面試題》


原型鏈:

實例與原型的鏈條,原型是prototype,鏈是__proto__,每個函數有一個原型對象,函數在創建時有一個默認屬性 prototype,這個屬性指向函數的原型對象。

繼承:

ES6 使用extends關鍵字對Class類繼承,其余還有:構造函數、原型鏈、構造+原型鏈、原型式、寄生式、原型+寄生。

事件隊列:

分為微任務、宏任務,微任務一般比宏任務先執行,并且微任務隊列只有一個。

宏任務:setTimeout、setInterval......?

微任務:Promise、nextTick.......

事件循環

JS分為同步和異步任務。同步任務在主線程上執行,一旦執行棧中的所有同步任務執行完畢,系統就會讀取任務隊列,將可運行的異步任務添加到可執行棧中,開始執行。

防抖和節流

為了阻止操作高頻觸發,從而浪費性能。防抖執行最后一次,節流執行第一次。

防抖:搜索聯想、窗口調整;節流:鼠標連點、滾動加載。

閉包

閉包就是函數內嵌套函數,使函數外可以讀取到函數內部的變量,未釋放前變量會一直占用內存。用途:模塊化、防抖、節流、封裝函數延遲執行。

Promise

Promise對象代表一個異步操作,異步操作的結果決定狀態,當狀態從pending變為fulfilled或pending變為rejected,狀態就不會再改變,稱為 resolved。

async/await

async :申明方法是異步的;await:等待異步方法執行完成;返回值是 Promise 對象。

?process.nextTick()?和setImmediate()?

被設置的回調函數都是在下一次 Tick 時被調用,process.nextTick()優先級>setImmediate()

箭頭函數和普通函數的區別

箭頭函數更簡潔,沒有自己的this,this指向定義時所在作用域的this,且不會改變。
不可以當作構造函數,不可以使用new命令,不可以使用arguments,不可以使用yield命令。

變量提升

在js中,變量和函數的聲明會被提升到最頂部執行,函數內部如果用var聲明了相同名稱的外部變量,函數將不再向上尋找。

his指向

this總是指向函數的直接調用者,如果有new關鍵字,this指向new出來的對象;在事件中,this指向觸發這個事件的對象。

數組去重的方法?

ES6的Set、Array.filter() +?indexOf() 、?Array.includes()

Promise 面試題 以下代碼的執行結果是?

const promise = new Promise((resolve, reject) => {console.log(1)resolve()console.log(2)
})
promise.then(() => {console.log(3)
})
console.log(4)

答案:選中👉1,2,4,3

解釋:以上考察的是關于promise的原理,promise的構造函數是同步執行的,當new Promise的一瞬間,1,2 就立刻被執行,而 .then方法是異步執行的,當執行完1和2之后,會執行輸出4,最后執行輸出3

數組扁平化使用場景

快速獲取/過濾嵌套數組中的某個值

數組求和?

const arrSum = (arr) => {const temp = arr.reduce((pre, now) => {return pre+now},0)return temp
}

求數組的最大值/最小值?

Math.max();
Math.min();
解構賦值?

let a = 1; let b = 2;? 如果在不聲明第三個變量的前提下,使a=2, b=1?

答案:選中👉[a, b] = [b, a]

為什么要使用組件?

方便維護、方便復用、提高開發效率

在組件的設計中,需要考慮什么?

可擴展性強、功能單一、便于復用,適用程度高

前端性能優化:

大致分為兩部分:1、資源優化,通過打包配置優化資源,合理使用異步加載模塊。2、代碼優化,減少代碼冗余,使用性能更好的API,減少重繪回流。

虛擬dom為什么會快?

虛擬 dom 相當于在 js 和真實 dom 中間加了一個緩存,利用 dom diff 算法計算出差異,只更新差異點,從而提高性能。

loader 和 plugin的區別?說幾個Webpack常用 loader 和 plugin:

loader處理語法、plugin幫助資源文件打包優化

babel-loader、vue-loader、?file-loader、url-loader、eslint-loader、cache-loader、css-loader......

uglify-webpack-plugin(壓縮js)、optimize-css-assets-webpack-plugin(壓縮css)、html-webpack-plugin、webpack-bundle-analyzer(打包文件體積可視化)......

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40014.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40014.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40014.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

YOLOv10全網最新創新點改進系列:融合GSConv+Slim Neck,雙改進、雙增強,替換特征融合層實現, 輕量化漲點改進策略,有效漲點神器!

YOLOv10全網最新創新點改進系列:融合GSConvSlim Neck,雙改進、雙增強,替換特征融合層實現, 輕量化漲點改進策略,有效漲點神器! 所有改進代碼均經過實驗測試跑通!截止發稿時YOLOv10已改進40&…

【數據結構】06.棧隊列

一、棧 1.1棧的概念及結構 棧:一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行數據插入和刪除操作的一端稱為棧頂,另一端稱為棧底。棧中的數據元素遵守后進先出LIFO(Last In First Out)的原則。 壓棧&#…

FPGA就業方向以及主要工作

FPGA(Field-Programmable Gate Array)作為可編程邏輯器件,在多個行業和領域中都有廣泛的應用。具備FPGA技能的專業人士可以在多個方向上找到就業機會,以下是FPGA主要的就業方向及其對應的主要工作職責: 通信行業 職位…

LangChain終極內幕指南,學會langchain就看它了

1.概述 在人工智能迅速演進的時代,諸如Open AI的ChatGPT和Google的Bard等大型語言模型(LLMs)正徹底改變我們與技術互動的方式。這些技術巨頭和SaaS公司正在競相利用LLMs的威力,創造更為智能和實用的應用程序。 然而,真正的變革并非僅僅停留…

低壓電工精選歷年真題附答案

1.當電壓為5V時,導體的電阻值為5歐,那么當電阻兩端電壓為2V時,導體的電阻值為()歐。[單選題] A 、10B、5(正確答案) C、2 2.當電氣火災發生時,應首先切斷電源再滅火,但當電源無法切斷時,只能帶電滅火&…

Finding and exploting an unused API endpoint

Using 0$ account buy a piece of lether priced at $133 1、嘗試訪問api接口 大概率可能訪問不到,但是可以嘗試訪問下 /api/swagger/v1 /openapi.json 2、頁面功能點尋找 api send to Repeter 3、Find Supported HTTP請求 POST方法測試 通過測試得知支持GET方法和PATC…

C語言實現的人員管理系統(順序表版)

該系統具有以下主要功能: 添加人員信息:在有空間的前提下,用戶輸入人員的工號、姓名、性別、聯系電話和 QQ 號等信息,系統會自動檢查編號的唯一性,確保不重復。查找人員信息:提供按工號和姓名兩種查找方式…

av_read_frame 代碼研究

------------------------------------------------------------ author: hjjdebug date: 2024年 07月 05日 星期五 11:02:51 CST av_read_frame 代碼研究 ------------------------------------------------------------ 有人只標注一層,標注一層太膚淺了.不能了解底層之精妙…

Lianwei 安全周報|2024.07.01

新的一周又開始了,以下是本周「Lianwei周報」,我們總結推薦了本周的政策/標準/指南最新動態、熱點資訊和安全事件,保證大家不錯過本周的每一個重點! 政策/標準/指南最新動態 01 出于安全考慮,拜登下令禁用卡巴斯基殺毒…

【康復學習--LeetCode每日一題】3115. 質數的最大距離

題目: 給你一個整數數組 nums。 返回兩個(不一定不同的)質數在 nums 中 下標 的 最大距離。 示例 1: 輸入: nums [4,2,9,5,3] 輸出: 3 解釋: nums[1]、nums[3] 和 nums[4] 是質數。因此答案是…

SpringBoot各類數量限制及超出后拋出的異常

前言 在使用SpringBoot開發接口時,動不動的就發生各種超過默認值的限制,這里總結了下SpringBoot默認限制的設置以及可能會發生的異常,便于問題的排查和快速修改默認值。 配置項配置項說明默認值超過大小后拋出的異常spring.servlet.multipa…

系統管理(System Keeping):全新迭代,優化您的開發體驗

隨著科技的不斷進步和用戶需求的日益增長,系統管理(System Keeping)不斷進行迭代更新,致力于為用戶帶來更加高效、便捷的開發體驗。本次全新迭代,不僅在界面與交互上進行了革新,更在功能整合、個性化與安全…

ECOLOGY9重置系統管理員密碼

ECOLOGY9系統管理員密碼忘記需要重置: 1、KB2110之后版本加了防篡改邏輯,數據庫中初始話密碼需要將hashdata、signdata更新為空,執行如下語句初始化 update HrmResourceManager set password ‘C4CA4238A0B923820DCC509A6F75849B’,salt‘’…

Android --- Service

出自于此,寫得很清楚。關于Android Service真正的完全詳解,你需要知道的一切_android service-CSDN博客 出自【zejian的博客】 什么是Service? Service(服務)是一個一種可以在后臺執行長時間運行操作而沒有用戶界面的應用組件。 服務可由其他應用組件…

萬字長文|關于 OpenAI 接口開發你應該知道的一切

這篇文章中個人結合自己的實踐經驗把 OpenAI 官方文檔解讀一遍。但是原文檔涉及內容眾多,包括微調,嵌入(Embeddings)等眾多主題,我這里重點挑選自己開發高頻使用到的,需要詳細了解的可以自行前往官網閱讀。…

Java中的文本搜索與全文檢索引擎

Java中的文本搜索與全文檢索引擎 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! 在現代應用程序中,處理和搜索大量文本數據是一項關鍵任務。傳統的…

2024科技文化節程序設計競賽

補題鏈接 https://www.luogu.com.cn/contest/178895#problems A. 簽到題 忽略掉大小為1的環&#xff0c;答案是剩下環的大小和減環的數量 #include<bits/stdc.h> #include<iostream> #include<cstdio> #include<vector> #include<map> #incl…

c進階篇(四):內存函數

內存函數以字節為單位更改 1.memcpy memcpy 是 C/C 中的一個標準庫函數&#xff0c;用于內存拷貝操作。它的原型通常定義在 <cstring> 頭文件中&#xff0c;其作用是將一塊內存中的數據復制到另一塊內存中。 函數原型&#xff1a;void *memcpy(void *dest, const void…

多模態融合算法應用:CT + 臨床文本數據 + pyradiomics提取到的圖像特征

多模態融合算法應用 CT 臨床文本數據 pyradiomics提取圖像特征 單模態建模臨床數據建模pyradiomics提取圖像特征建模CT建模 多模態建模前融合為什么能直接合并在一起&#xff1f; 后融合Med-CLIP&#xff1a;深度學習 可解釋性 單模態建模 臨床數據建模 臨床文本數據&…

WPF Menu實現快捷鍵操作

很多小伙伴說&#xff0c;在Menu中&#xff0c;實現單個快捷鍵操作很簡單&#xff0c;怎么實現多個快捷鍵操作和&#xff0c;組合快捷鍵呢&#xff0c;今天他來了。 上代碼和效果圖 一、Ctrl Shift 任意子母鍵實現快捷鍵組合 <Window x:Class"XH.TemplateLesson.M…