91桃色含羞草片多多-91桃色视-91桃色视频-91桃色视频在线观看-91桃色网站-91桃色污无限免费看

您的當前位置:首頁 > 移民資訊 > 前端ES6高頻面試題(前端面試題2024) 正文

前端ES6高頻面試題(前端面試題2024)

時間:2025-03-12 19:13:45 來源:網絡整理 編輯:移民資訊

核心提示

ES6 你能解釋一下ES5和ES6之間的區別嗎? ECMAScript 5 (ES5):ECMAScript 的第五個版本,于2009 年標準化,所有現代瀏覽器都完全支持該標準。ECMAScrip

ES6 你能解釋一下ES5和ES6之間的前端區別嗎? ECMAScript 5 (ES5):ECMAScript 的第五個版本,于2009 年標準化,高頻所有現代瀏覽器都完全支持該標準。面試

ECMAScript 6 (ES6)/ECMAScript 2015 (ES2015): ECMAscript 版本6,題前于2015 年標準化。端面該標準已在大多數現代瀏覽器中部分實現。試題

以下是前端ES5 和ES6 之間的一些主要區別:

1. 箭頭功能

constgreetings=(name)={ return `hello ${ name}`;} 也可以這樣寫:

const 問候語=name=`你好${ name}`;2.常量

const 表示變量的原始值不能被修改。需要注意的高頻是,const 表示對值的面試常量引用。我們可以更改引用對象的題前屬性值,但不能更改引用本身。端面

const NAMES=[];NAMES.push('吉姆');console.log(NAMES.length===1); //trueNAMES=['史蒂夫',試題 '約翰']; //錯誤3。塊作用域

在ES6 中,前端let 和const 將創建塊級作用域,高頻并且不會像使用var 聲明的面試變量那樣被提升。

4. 默認參數

默認參數允許我們使用默認值初始化函數。當參數被省略或未定義時,使用默認參數值。

函數乘法(a,b=2){ 返回a * b;}乘法(5); //105. 類定義和繼承

ES6 引入了對類(class 關鍵字)、構造函數(constructor 關鍵字)和extends 關鍵字(用于繼承)的語言支持。

6. for-of 運算符

for.of 語句創建一個迭代可迭代對象的循環。

7. 擴展運算符

const obj1={ a: 1, b: 2 } const obj2={ a: 2, c: 3, d: 4} const obj3={ .obj1,obj2} 8. Promise

Promise 提供了一種處理異步操作的結果和錯誤的機制。使用回調可以完成同樣的事情,但是Promise 通過方法鏈接和簡潔的錯誤處理來提高可讀性。

const isGreater=(a, b)={ return new Promise ((resolve,reject)={ if(a b) { resolve(true)} else { reject(false)}})}isGreater(1, 2) .then( result={ console.log('greater')}) .catch(result={ console.log('smaller')}) 9. 模塊導出和導入

const myModule={ x: 1, y: ()={ console.log('This is ES5') }}export default myModule;import myModule from './myModule';為什么使用ES6 類?選擇使用類的一些原因:

1.語法更簡單,不易出錯。

2. 使用新語法比舊語法更容易(并且更不容易出錯)設置繼承層次結構。

3.類可以避免在構造函數中使用new的常見錯誤(如果不是有效對象則使構造函數拋出異常)。

4. 調用父原型方法的新語法比舊語法簡單得多。使用super.method() 而不是ParentConstructor.prototype.method.call(this) 或Object.getPrototypeOf(Object.getPrototypeOf(this)).method .call(this)

何時不使用箭頭函數舉出三個或更多示例1. 當使用函數作為構造函數時(箭頭函數沒有構造函數)

2.當你想在函數中使用this/arguments時,由于箭頭函數本身沒有this/arguments,它們依賴于外部上下文

3、當你想讓函數提升時(箭頭函數是匿名的)

4.當你想在對象字面量中添加一個函數作為屬性并使用其中的對象時,因為我們無法訪問this,即對象本身。

6.4. ES6 Map 和WeakMap 有什么區別?當它們的鍵/值引用的對象被刪除時,它們的行為都不同,以下面的代碼為例:

var map=new Map()varweakmap=new WeakMap()(function() { var a={ x: 12}; var b={ y: 12};map.set(a, 1);weakmap.set(b, 2);})()執行上面的IIFE,不能再引用{ x: 12}和{ y: 12}。垃圾收集器繼續并從WeakMap 中刪除鍵b 指針,并從內存中刪除{ y:12}。

1.在使用Map的情況下,垃圾收集器不會從Map中刪除指針,也不會從內存中刪除{ x:12}

2.WeakMap允許垃圾收集器執行其回收任務,而Map則不允許。對于手動編寫的Map,數組將保留對關鍵對象的引用以防止垃圾回收。但在WeakMap 中,對關鍵對象的引用被“弱”保留,這意味著它們不會在不被其他對象引用的情況下阻止垃圾回收。

給出一個柯里化函數的例子并解釋柯里化的好處?柯里化是一種模式,其中具有多個參數的函數被分解為多個函數,這些函數在串行調用時,一次累積一個所需的所有參數。這種技術有助于以函數式風格編寫的代碼更易于閱讀和編寫。需要注意的是,要實現一個函數,需要從一個函數開始,然后將其分解為一系列函數,每個函數接受一個參數。

函數curry(fn) { if (fn.length===0) { return fn;}function _curried(深度, args) { return 函數(newArgument) { if (深度- 1===0) { return fn(.args, newArgument);}return _curried(深度- 1, [.args, newArgument]);};}return _curried(fn.length, []);}function add(a, b) { return a + b;}var curriedAdd=curry(add);var addFive=curriedAdd(5);var result=[0, 1, 2, 3, 4, 5].map(addFive); //[5, 6, 7, 8, 9, 10]

主站蜘蛛池模板: 国产欧美精品一区二区性色 | 国产91av视频在线播放 | 国产精品女同一区二区久久夜 | 国产一级精品在线观看 | 国产精品国产三级国产试看 | 国产a一级毛片爽爽影院无码 | 精品国产色欧洲激情 | 91狠狠色综合久久久夜色撩人 | 国产一区二区高清 | 2025亚洲精品无码在钱 | av无码中文字幕不卡一区二区三区 | 国产成人四虎在线观看 | 国产一区二区无码区 | 高清国产在线拍揄自揄视频 | 国产国产成年在线视网站 | 高清不卡在线播放 | 精品国产美女在线一区二区三区 | 国产av一区二区三区最新精品 | 国产在线观看99 | 国产美女精品av免费专区 | 国产真实喝醉系列39女同事 | 国产在线一区二区三区网站 | 国产在线观看高清看片 | 成人亚洲a片v一区二区三区蜜月 | 东京热无码人妻系列综合网站 | 国产美女精品久久久久中文 | 97无码免费人妻超级碰碰夜夜 | 高清无码爆乳系列 | 国产精品美女 | 国产精品亚洲日韩欧美在线观看 | 国产三级在线播放第一页 | 国产日韩一区美利坚 | 国产精品边做奶水狂喷有码 | 国产国语对白露脸正在播放 | 国产在线成人a | 国产欧美丝袜在线二蜜芽tv | 国产精品亚洲精品在线观看 | 国产精品刺激对白一区二区三区 | 国产成人免费片在线视频观看 | 2025国产精品最新在线 | 国产精品伦理在线 |