日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

11道JavaScript 面試題

來源: 責編: 時間:2024-06-05 17:43:36 210觀看
導讀我從事 JavaScript 面試已經有一段時間了,我遇到過很多人,盡管知道自己要參加 JavaScript 面試,但他們要么不熟悉 JavaScript,要么沒有做好充分的準備。盡管從事過基于 JavaScript 的項目,但其中一些人甚至無法回答最基本

我從事 JavaScript 面試已經有一段時間了,我遇到過很多人,盡管知道自己要參加 JavaScript 面試,但他們要么不熟悉 JavaScript,要么沒有做好充分的準備。X6w28資訊網——每日最新資訊28at.com

X6w28資訊網——每日最新資訊28at.com

盡管從事過基于 JavaScript 的項目,但其中一些人甚至無法回答最基本的 JavaScript 問題。因此,本文的目的是分享在JavaScript 面試中會遇到哪些問題以及如何回答這些問題。X6w28資訊網——每日最新資訊28at.com

這些不是我在采訪中提出的確切問題,但它們確實涵蓋了概念。讓我們從一些基本問題開始,然后逐步討論更高級的概念。X6w28資訊網——每日最新資訊28at.com

1. var、let 和 const 之間的區別?

盡管這是 JS 的基本問題之一,但令人驚訝的是,許多人都無法區分 let 和 var 之間的區別。X6w28資訊網——每日最新資訊28at.com

答案很簡單:var 是函數作用域,可以重新聲明和更新,而 let 是塊作用域,不能重新聲明,但可以更新。同時,const 是塊作用域的,不能重新聲明或更新。X6w28資訊網——每日最新資訊28at.com

var a = 10 // Can re-declared and updatelet b = 20 // Can't re-declared but can updateconst c = 30 // Can't re-declared or update

當然,var 如今已經不太常用了,但是仍然有代碼使用它,我們可能會遇到。未能回答此問題還表明你不熟悉 JavaScript 中塊作用域和函數作用域之間的區別。X6w28資訊網——每日最新資訊28at.com

2. == 和 === 運算符的區別?

這也是一個很常見的JS問題。== 運算符僅檢查值是否匹配,而忽略數據類型。如果要比較的兩個變量的類型不同,它會在后臺執行類型強制。另一方面, === 運算符確保值和類型相等。X6w28資訊網——每日最新資訊28at.com

2 == "2" //true2 === "2" //falsenull == undefined //truenull === undefined //false

3. 如何在不改變原始數組的情況下對數組進行排序?

在 2023 年之前,要對數組進行排序而不改變它,你需要對其進行淺表復制,因為 JS 排序函數會改變原始數組。X6w28資訊網——每日最新資訊28at.com

因此,最簡單的方法是使用擴展運算符,然后對數組進行排序,如下例所示。X6w28資訊網——每日最新資訊28at.com

const numbers = [3, 1, 4, 1, 5];const sorted = [...numbers].sort();

然而,在 2023 年,JS 引入了 toSorted() 函數,它允許您在不改變原始數組的情況下對數組進行排序。這個問題測試候選人的知識以及是否是最新的。X6w28資訊網——每日最新資訊28at.com

const numbers = [3, 1, 4, 1, 5];const sorted = numbers.toSorted();

4. 解釋回調函數并提供用例?

簡而言之,回調是一個函數,它作為參數傳遞給另一個函數,然后在后者完成其任務后執行。它支持異步操作,允許 JavaScript 處理耗時的任務,而不會延遲其他操作的執行。X6w28資訊網——每日最新資訊28at.com

const fetchData = (callbackFunc) => {    setTimeout(() => {      const data = "Sample data";      callbackFunc(data);   }, 2000);}const processFetchedData = (data) => {    console.log("Processing data:", data);}fetchData(processFetchedData);

回調用于處理用戶事件,例如按鈕單擊和輸入更改。當用戶事件發生時,可以調用回調函數來執行一段代碼?;卣{對于處理異步數據請求也非常有用。當從服務器獲取數據時,回調函數處理接收到的數據。X6w28資訊網——每日最新資訊28at.com

5. JavaScript 中的閉包是什么?

閉包是一個可以訪問其自身作用域、外部函數作用域和全局作用域的函數。閉包還與 JavaScript 中的詞法作用域相關。詞法作用域描述了變量和函數在運行時如何確定作用域。為了解釋什么是閉包,最好用一個簡單的例子。X6w28資訊網——每日最新資訊28at.com

let makeSizer = (size) =>   () => {    console.log(`fontSize = ${size}px`);  };const size10 = makeSizer(10);const size12 = makeSizer(12);const size14 = makeSizer(14);size10(); // fontSize = 10pxsize12(); // fontSize = 12pxsize14(); // fontSize = 14px

在前面的示例中,size10、size12 和 size14 函數是閉包。閉包在事件驅動編程中很有用。例如,你可以編寫一個生成事件處理程序的函數,每個處理程序都可以訪問特定數據,而不會污染全局范圍。X6w28資訊網——每日最新資訊28at.com

6.什么時候需要使用Async代碼?

當我們需要避免 JavaScript 中阻塞主線程時,我們必須使用異步代碼。主線程管理調用堆棧,其中包含當前的函數調用序列。如果主線程被阻塞,函數在調用之前將必須等待。X6w28資訊網——每日最新資訊28at.com

因此,異步代碼對于高效處理耗時操作至關重要。JavaScript 提供了回調、promise 和 async/await 等技術來更好地管理異步操作。X6w28資訊網——每日最新資訊28at.com

7. JavaScript 中的 Promise 是什么?

Promise 是代表異步操作最終成功或失敗的對象。它們是與 ES6 JavaScript 添加一起引入的。當 Promise 被解決或拒絕時,您可以使用 Promise 實例的 then 和 catch 方法來調用函數。以下是 Promise 的簡單 JavaScript 代碼示例。X6w28資訊網——每日最新資訊28at.com

const fetchData = () => { return new Promise((resolve, reject) => {    // Simulate an asynchronous operation    setTimeout(() => {      // Resolve the promise with some data      resolve("Data fetched successfully!");    }, 1000); });};// Use the PromisefetchData() .then(data => {    console.log(data); }) .catch(error => {    console.error("An error occurred:", error); });

8. Promise 和 Observables 之間的區別?

這是一個比前面的問題更高級的問題。Observables 是 Promise 的更強大版本,但它們不是 Javascript 原生的。它們用于處理產生多個值的操作,例如,用戶輸入事件或實時數據流。X6w28資訊網——每日最新資訊28at.com

與 Promises 不同,Observables 允許你通過調用 unsubscribe() 方法來取消正在進行的操作。Observables 也比 Promises 更適合復雜的數據操作,因為它們支持更廣泛的運算符(例如 map、filter、switchMap 等)。X6w28資訊網——每日最新資訊28at.com

然而,Observables 要求應用程序包含 RxJS 依賴開銷。此外,Observables 比 Promise 更難使用。因此,如果需要一種簡單的方法來處理異步操作的單個結果,Promise 更適合。X6w28資訊網——每日最新資訊28at.com

9. Promise 和 Async Await 之間的區別?

Async/Await 具有比 Promises 更同步的語法,使閱讀和理解程序的流程變得更容易。與 Promise 鏈相比,Async/Await 的樣板代碼更少。鏈接是連續執行兩個或多個異步操作,每個后續操作在前一個操作成功完成后開始。X6w28資訊網——每日最新資訊28at.com

const fetchData = async () => { // Simulate an API call that returns a promise let promise = new Promise((resolve, reject) => {    setTimeout(() => resolve("Data fetched!"), 1000); }); let result = await promise; console.log(result);}fetchData().catch(error => {    console.error("An error occurred:", error);});

上面是 async/await 在 JavaScript 中如何工作的示例。wait 關鍵字指示 JavaScript 等待,直到 Promise 對象被解析或拒絕。X6w28資訊網——每日最新資訊28at.com

Async/Await 基于 Promises,并作為對開發人員更友好的語法在 Promises 之后添加到 JavaScript 中。X6w28資訊網——每日最新資訊28at.com

但是,在必須并發處理多個異步操作的場景中,應該使用 Promises 而不是 async/await。Promise.all() 方法在這種情況下會很有用。X6w28資訊網——每日最新資訊28at.com

10. 解釋一下去抖動和節流?

去抖動意味著延遲函數的執行,直到自上次觸發事件以來經過一定時間。另一方面,節流限制了調用函數的頻率。它確保函數以指定的時間間隔執行,并且該時間間隔內的任何其他調用都將被忽略。X6w28資訊網——每日最新資訊28at.com

用例X6w28資訊網——每日最新資訊28at.com

去抖動最常見的應用之一是搜索建議,您希望等待用戶完成輸入后再獲取建議。這避免了每次擊鍵時都調用 API 并提高了性能。X6w28資訊網——每日最新資訊28at.com

限制對于處理滾動和調整大小事件非常有用,可以在這些事件中限制函數調用的頻率,以便應用程序不會因重新渲染而過載。X6w28資訊網——每日最新資訊28at.com

11. 什么是 JavaScript 中的事件冒泡以及如何阻止它?

當你單擊嵌套在其他幾個元素中的按鈕時,該按鈕及其父元素都會觸發單擊事件,從而在 DOM 樹中向上移動。這稱為事件冒泡,DOM 中的大多數事件都會發生這種情況。如果組件具有嵌套的單擊事件,這可能會成為問題。X6w28資訊網——每日最新資訊28at.com

要停止事件冒泡,可以使用事件對象的 stopPropagation() 方法。此方法可防止事件在 DOM 樹上進一步傳播。X6w28資訊網——每日最新資訊28at.com

onClick((event) => {  event.stopPropagation();  console.log("button clicked");})

總結

以上這11道面試題中有基本和高級 JavaScript 問題與概念。作為面試官,我試圖使這些信息盡可能簡單,以便即使是初學者也能理解。X6w28資訊網——每日最新資訊28at.com

我希望今天分享的這期內容能夠幫助你自信地面對下一次 JavaScript 面試。最后,感謝您的閱讀,祝編程愉快。X6w28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-92129-0.html11道JavaScript 面試題

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Python 數億次數值對對比,如何高效率處理?

下一篇: 25個每個開發人員都應該知道的CSS 技巧

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲精品乱码久久久久久久久| 国产亚洲一区二区三区在线观看 | 久久视频在线免费观看| 久久久精品国产一区二区三区| 免费精品视频| 国产精品都在这里| 国模吧视频一区| 亚洲精品小视频| 亚洲图片在线观看| 久久久久久久久久久成人| 欧美韩日精品| 国产精品日韩在线观看| 在线看欧美日韩| 国产精品99久久99久久久二8| 久久精品观看| 欧美日韩高清区| 国产一区二区三区黄视频| 亚洲黄色尤物视频| 亚洲免费在线| 女女同性女同一区二区三区91| 欧美视频免费| 亚洲第一搞黄网站| 亚洲欧美日韩成人| 欧美成人黑人xx视频免费观看| 国产精品日韩久久久久| 亚洲精品美女在线观看| 欧美在线资源| 欧美四级剧情无删版影片| 激情五月婷婷综合| 亚洲免费影视第一页| 欧美高清视频在线播放| 国产日韩欧美亚洲| 一区二区久久| 欧美高清成人| 国产一区二区视频在线观看| 夜色激情一区二区| 欧美日韩精品欧美日韩精品 | 欧美一区二区三区视频| 欧美激情精品久久久久久蜜臀| 国产精品一二三四区| 亚洲日本中文字幕| 久久九九免费视频| 欧美色图首页| 欧美色另类天堂2015| 亚洲国产成人不卡| 欧美一区二区三区在线免费观看| 欧美日韩三区四区| 亚洲人在线视频| 久久久久国色av免费看影院 | 国产精品久久久久影院亚瑟| 亚洲激情国产精品| 久久久www| 国产精品入口尤物| 在线亚洲精品| 欧美另类亚洲| 亚洲国产成人精品视频 | 欧美性猛交视频| 亚洲精品乱码久久久久久黑人| 久久亚洲私人国产精品va媚药| 国产欧美一级| 午夜精品久久久久| 欧美视频一区二区三区…| 亚洲日本中文| 欧美大片免费观看| 亚洲激情在线观看| 免费永久网站黄欧美| 在线电影一区| 久久久久免费视频| 韩日精品视频| 久久尤物视频| 在线观看欧美视频| 每日更新成人在线视频| 精品999网站| 久久久免费av| 红桃视频欧美| 久久久久久国产精品mv| 韩国女主播一区| 久久久综合香蕉尹人综合网| 精品成人国产| 美女视频一区免费观看| 伊人成综合网伊人222| 久久亚洲午夜电影| 亚洲国产成人一区| 欧美国产日韩一区二区| 亚洲精品中文在线| 欧美日韩不卡| 亚洲午夜在线观看| 国产精品视频99| 欧美影院在线播放| 黄色成人在线免费| 欧美a级一区| 亚洲三级电影在线观看| 欧美日韩久久久久久| 一区二区三区欧美日韩| 国产精品家庭影院| 欧美影院成年免费版| 激情视频一区二区| 欧美激情精品久久久久久黑人| 日韩一级黄色大片| 国产精品久久久久久久久搜平片 | 亚洲美女中出| 国产精品大片wwwwww| 性久久久久久久久| 黄色成人精品网站| 欧美二区在线看| 亚洲天堂成人| 国产日韩欧美制服另类| 开心色5月久久精品| 亚洲精品日韩在线观看| 欧美婷婷久久| 久久av免费一区| 亚洲国产精品福利| 欧美午夜精品电影| 久久精品女人天堂| 亚洲日本中文字幕| 国产精品一区二区久久国产| 久久精品一本| 亚洲蜜桃精久久久久久久| 国产精品久久毛片a| 久久久蜜桃一区二区人| 夜夜爽夜夜爽精品视频| 国产视频自拍一区| 欧美国产日韩xxxxx| 午夜国产精品视频| 亚洲电影自拍| 国产精品极品美女粉嫩高清在线| 久久精品av麻豆的观看方式| 亚洲欧洲在线一区| 国产精品一区二区视频 | 欧美久久一区| 久久精品91| 夜夜嗨av色综合久久久综合网| 国产午夜精品在线| 欧美精品一区二区三区高清aⅴ| 午夜精品久久久久久久久久久久| 亚洲国产视频直播| 国产精品视区| 欧美刺激午夜性久久久久久久| 亚洲综合大片69999| 亚洲高清在线观看一区| 国产精品日韩欧美综合| 免费国产一区二区| 欧美一区网站| 一区二区av在线| 国内精品久久久久久久影视麻豆| 欧美日韩情趣电影| 久久一区视频| 欧美一区二区精品在线| 亚洲看片网站| 黄色成人免费观看| 国产精品麻豆欧美日韩ww| 欧美成人综合网站| 久久成人精品无人区| 中日韩美女免费视频网址在线观看 | 欧美日韩黄色大片| 久久久久一区二区三区| 亚洲一区二区三区在线| 亚洲片区在线| 国语精品中文字幕| 国产精品女主播| 欧美激情视频网站| 久久人人精品| 欧美一区二区三区四区高清| av成人黄色| 亚洲国产小视频在线观看| 国产午夜精品一区二区三区欧美| 欧美日韩一区二区视频在线观看| 久久夜色精品亚洲噜噜国产mv| 亚洲欧美成人在线| 一区二区高清视频在线观看| 亚洲国产人成综合网站| 国语自产精品视频在线看抢先版结局 | 久久成人一区| 亚洲欧美久久久| 99亚洲一区二区| 篠田优中文在线播放第一区| 99精品福利视频| 亚洲日本中文字幕| 亚洲国产精品va| 国内精品**久久毛片app| 国产精品爽爽ⅴa在线观看| 欧美日韩在线视频首页| 欧美精品激情在线观看| 欧美18av| 免费在线日韩av| 老鸭窝毛片一区二区三区| 久久久久久久综合| 久久精品30| 久久久久久久久伊人| 久久国产日本精品| 欧美制服丝袜第一页| 久久国产精品久久久久久| 欧美伊久线香蕉线新在线| 亚洲欧美日韩精品久久久久| 亚洲一区三区电影在线观看| 亚洲无亚洲人成网站77777| 一本久久综合亚洲鲁鲁| 日韩五码在线| 夜夜嗨av一区二区三区中文字幕 | 国产精品久久一区二区三区| 欧美午夜精品一区| 国产精品久久97| 国产精品一区二区欧美| 国产欧美日韩亚州综合|