前端ES6高頻面試題(前端面試題2024)
發(fā)布時(shí)間:2024-10-09 08:32:14 作者:uonn 點(diǎn)擊:999 【 字體:大 中 小 】
ES6 你能解釋一下ES5和ES6之間的前端區(qū)別嗎? ECMAScript 5 (ES5):ECMAScript 的第五個(gè)版本,于2009 年標(biāo)準(zhǔn)化,高頻所有現(xiàn)代瀏覽器都完全支持該標(biāo)準(zhǔn)。面試
ECMAScript 6 (ES6)/ECMAScript 2015 (ES2015): ECMAscript 版本6,題前于2015 年標(biāo)準(zhǔn)化。端面該標(biāo)準(zhǔn)已在大多數(shù)現(xiàn)代瀏覽器中部分實(shí)現(xiàn)。試題
以下是前端ES5 和ES6 之間的一些主要區(qū)別:
1. 箭頭功能
constgreetings=(name)={ return `hello ${ name}`;} 也可以這樣寫:
const 問(wèn)候語(yǔ)=name=`你好${ name}`;2.常量
const 表示變量的原始值不能被修改。需要注意的高頻是,const 表示對(duì)值的面試常量引用。我們可以更改引用對(duì)象的題前屬性值,但不能更改引用本身。端面
const NAMES=[];NAMES.push('吉姆');console.log(NAMES.length===1); //trueNAMES=['史蒂夫',試題 '約翰']; //錯(cuò)誤3。塊作用域
在ES6 中,前端let 和const 將創(chuàng)建塊級(jí)作用域,高頻并且不會(huì)像使用var 聲明的面試變量那樣被提升。
4. 默認(rèn)參數(shù)
默認(rèn)參數(shù)允許我們使用默認(rèn)值初始化函數(shù)。當(dāng)參數(shù)被省略或未定義時(shí),使用默認(rèn)參數(shù)值。
函數(shù)乘法(a,b=2){ 返回a * b;}乘法(5); //105. 類定義和繼承
ES6 引入了對(duì)類(class 關(guān)鍵字)、構(gòu)造函數(shù)(constructor 關(guān)鍵字)和extends 關(guān)鍵字(用于繼承)的語(yǔ)言支持。
6. for-of 運(yùn)算符
for.of 語(yǔ)句創(chuàng)建一個(gè)迭代可迭代對(duì)象的循環(huán)。
7. 擴(kuò)展運(yùn)算符
const obj1={ a: 1, b: 2 } const obj2={ a: 2, c: 3, d: 4} const obj3={ .obj1,obj2} 8. Promise
Promise 提供了一種處理異步操作的結(jié)果和錯(cuò)誤的機(jī)制。使用回調(diào)可以完成同樣的事情,但是Promise 通過(guò)方法鏈接和簡(jiǎn)潔的錯(cuò)誤處理來(lái)提高可讀性。
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. 模塊導(dǎo)出和導(dǎo)入
const myModule={ x: 1, y: ()={ console.log('This is ES5') }}export default myModule;import myModule from './myModule';為什么使用ES6 類?選擇使用類的一些原因:
1.語(yǔ)法更簡(jiǎn)單,不易出錯(cuò)。
2. 使用新語(yǔ)法比舊語(yǔ)法更容易(并且更不容易出錯(cuò))設(shè)置繼承層次結(jié)構(gòu)。
3.類可以避免在構(gòu)造函數(shù)中使用new的常見錯(cuò)誤(如果不是有效對(duì)象則使構(gòu)造函數(shù)拋出異常)。
4. 調(diào)用父原型方法的新語(yǔ)法比舊語(yǔ)法簡(jiǎn)單得多。使用super.method() 而不是ParentConstructor.prototype.method.call(this) 或Object.getPrototypeOf(Object.getPrototypeOf(this)).method .call(this)
何時(shí)不使用箭頭函數(shù)舉出三個(gè)或更多示例1. 當(dāng)使用函數(shù)作為構(gòu)造函數(shù)時(shí)(箭頭函數(shù)沒(méi)有構(gòu)造函數(shù))
2.當(dāng)你想在函數(shù)中使用this/arguments時(shí),由于箭頭函數(shù)本身沒(méi)有this/arguments,它們依賴于外部上下文
3、當(dāng)你想讓函數(shù)提升時(shí)(箭頭函數(shù)是匿名的)
4.當(dāng)你想在對(duì)象字面量中添加一個(gè)函數(shù)作為屬性并使用其中的對(duì)象時(shí),因?yàn)槲覀儫o(wú)法訪問(wèn)this,即對(duì)象本身。
6.4. ES6 Map 和WeakMap 有什么區(qū)別?當(dāng)它們的鍵/值引用的對(duì)象被刪除時(shí),它們的行為都不同,以下面的代碼為例:
var map=new Map()varweakmap=new WeakMap()(function() { var a={ x: 12}; var b={ y: 12};map.set(a, 1);weakmap.set(b, 2);})()執(zhí)行上面的IIFE,不能再引用{ x: 12}和{ y: 12}。垃圾收集器繼續(xù)并從WeakMap 中刪除鍵b 指針,并從內(nèi)存中刪除{ y:12}。
1.在使用Map的情況下,垃圾收集器不會(huì)從Map中刪除指針,也不會(huì)從內(nèi)存中刪除{ x:12}
2.WeakMap允許垃圾收集器執(zhí)行其回收任務(wù),而Map則不允許。對(duì)于手動(dòng)編寫的Map,數(shù)組將保留對(duì)關(guān)鍵對(duì)象的引用以防止垃圾回收。但在WeakMap 中,對(duì)關(guān)鍵對(duì)象的引用被“弱”保留,這意味著它們不會(huì)在不被其他對(duì)象引用的情況下阻止垃圾回收。
給出一個(gè)柯里化函數(shù)的例子并解釋柯里化的好處?柯里化是一種模式,其中具有多個(gè)參數(shù)的函數(shù)被分解為多個(gè)函數(shù),這些函數(shù)在串行調(diào)用時(shí),一次累積一個(gè)所需的所有參數(shù)。這種技術(shù)有助于以函數(shù)式風(fēng)格編寫的代碼更易于閱讀和編寫。需要注意的是,要實(shí)現(xiàn)一個(gè)函數(shù),需要從一個(gè)函數(shù)開始,然后將其分解為一系列函數(shù),每個(gè)函數(shù)接受一個(gè)參數(shù)。
函數(shù)curry(fn) { if (fn.length===0) { return fn;}function _curried(深度, args) { return 函數(shù)(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]
猜你喜歡
怎么在谷粉學(xué)術(shù)上下載文章,谷粉學(xué)術(shù)怎么樣
韓國(guó)留學(xué)生換多少韓元匯率
日本留學(xué)碩士,日本留學(xué)的好處。
德語(yǔ)道歉句子,德語(yǔ)的抱歉怎么說(shuō)
美國(guó)前50大學(xué)學(xué)費(fèi),美國(guó)高校學(xué)費(fèi)排名
柏林工業(yè)大學(xué)錄取條件有哪些
韓國(guó)留學(xué)生收到快遞嗎知乎
韓國(guó)留學(xué)生拍電影叫什么
加拿大麥吉爾大學(xué)優(yōu)勢(shì)專業(yè),加拿大麥吉爾大學(xué)全球排名
德語(yǔ)問(wèn)溫度,德語(yǔ)heiβe怎么讀
德語(yǔ)的抱歉怎么說(shuō),德語(yǔ)抱怨信范文萬(wàn)能句
韓國(guó)留學(xué)生拍電影叫什么
紐約大學(xué)到底好不好,紐約大學(xué)有什么特色
韓國(guó)留學(xué)生報(bào)名費(fèi)用多少錢
韓國(guó)留學(xué)生晚上唱歌嗎
韓國(guó)留學(xué)生拍電影叫什么
二線城市985大學(xué),二線城市211大學(xué)
投降用德語(yǔ)怎么說(shuō),德國(guó)投降宣言
韓國(guó)留學(xué)生拍電影叫什么
韓國(guó)留學(xué)生收到快遞嗎知乎
黑龍江各高校,黑龍江高校排行
韓國(guó)留學(xué)生換多少韓元
德語(yǔ)問(wèn)溫度,德語(yǔ)heiβe怎么讀
韓國(guó)留學(xué)生換多少韓元匯率
男子游泳奧運(yùn)會(huì)金牌,男子游泳 奧運(yùn)會(huì)
心理學(xué)專業(yè)課程,心理學(xué)專業(yè)課程的重要性
如何用德語(yǔ)表達(dá)散熱器專家的意思,如何用德語(yǔ)表達(dá)散熱器專家的話
韓國(guó)留學(xué)生換多少韓元匯率
美國(guó)前50大學(xué)學(xué)費(fèi),美國(guó)高校學(xué)費(fèi)排名
德語(yǔ)的抱歉怎么說(shuō),德語(yǔ)的抱歉
如何用德語(yǔ)表達(dá)擺脫困境的方法,德語(yǔ)崩潰
如何用德語(yǔ)表達(dá)擺脫困境的意思,有深度的德語(yǔ)短句
qs和泰晤士排名區(qū)別,日本偏差值70在中國(guó)考什么大學(xué)
瓦赫寧根大學(xué)申請(qǐng)條件有哪些
韓國(guó)留學(xué)生搶商標(biāo)違法嗎
根特大學(xué)申請(qǐng)難度大不大 申請(qǐng)條件有哪些