摘要:函數(shù)的關(guān)鍵字的作用是停止執(zhí)行退出函數(shù)暫停執(zhí)行,等待方法調(diào)用停止執(zhí)行,可自行恢復(fù)執(zhí)行答案解析函數(shù)可以有很多個。簡答題說出至少個的新特性,并簡述它們的作用。簡答題答關(guān)鍵字,用于聲明只在塊級作用域起作用的變量。對象,更合理規(guī)范地處理異步操作。
通過對ES6系列文章的學(xué)習(xí),相信大家對ES6已結(jié)有一定程度的了解。
所以本節(jié)的目的在于通過測試,便于讓大家了解在學(xué)習(xí)中的知識掌握情況,查缺補漏,一步一個腳印。
1、選擇題
1.1 下面不屬于關(guān)鍵字let的特點的是:( )
A、只在 let 命令所在的代碼塊內(nèi)有效
B、會產(chǎn)生變量提升現(xiàn)象
C、同一個作用域,不能重復(fù)聲明同一個變量
D、不能在函數(shù)內(nèi)部重新聲明參數(shù)
答案:B
解析:使用var關(guān)鍵字才會產(chǎn)生變量提升的現(xiàn)象。關(guān)鍵字let不會產(chǎn)生變量提升現(xiàn)象,所以必須先聲明定義后使用,否則程序拋出異常。
1.2 關(guān)于定義常量的關(guān)鍵字const,定義一個Object對象{“name”:”Jack”},再對屬性name 的值進行修改,如:obj.name = “John”。下列說法正確的:()
A、修改常量,程序跑出異常
B、程序不拋出異常,修改無效
C、修改成功,name的值為John
D、程序不拋出異常,name的值為undefined
答案:C
解析:用const來聲明一個對象類型的常量,就是傳址賦值。而不可修改的是對象在內(nèi)存中的地址,而不是對象本身。所以修改name并不是修改對象的內(nèi)存地址,所以可以成功修改。
1.3 在對象的解構(gòu)賦值中,var {a,b,c} = { “c”:10, ”b”:9, ”a”:8 } 結(jié)果中,a、b、c的值分別是:()
A、10 9 8
B、8 9 10
C、undefined 9 undefined
D、null 9 null
答案:B
解析:對象的解構(gòu)賦值不會受到屬性的排列次序影響。
1.4 關(guān)于模板字符串,下列說法不正確的是:()
A、使用反引號標(biāo)識
B、插入變量的時候使用${ }
C、所有的空格和縮進都會被保留在輸出中
D、${ }中的表達(dá)式不能是函數(shù)的調(diào)用
答案:D
解析:${ }中可以放任意的JavaScript表達(dá)式,包括運算表達(dá)式、對象屬性、函數(shù)調(diào)用等。
1.5 關(guān)于字符串?dāng)U展的新函數(shù),下面描述錯誤的是:()
A、includes函數(shù)用于判斷字符串中是否含有指定的子字符串
B、repeat函數(shù)將目標(biāo)字符串重復(fù)N次,目標(biāo)字符串被修改
C、startsWidth函數(shù)判斷指定的子字符串是否出現(xiàn)在目標(biāo)字符串頭部位置
D、endWidth函數(shù)判斷指定的子字符串是否出現(xiàn)在目標(biāo)字符串尾部位置
答案:B
解析:repeat函數(shù)將目標(biāo)字符串重復(fù)N次,會返回一個新的字符串,不影響目標(biāo)字符串。
1.6 數(shù)組擴展的fill( )函數(shù),[1,2,3].fill(4)的結(jié)果是:()
A、[4]
B、[1,2,3,4]
C、[4,1,2,3]
D、[4,4,4]
答案:D
解析:fill函數(shù)的參數(shù)會把原數(shù)組的每個元素填充成指定的參數(shù)。
1.7 數(shù)組的擴展中,不屬于用于數(shù)組遍歷的函數(shù)的是:()
A、keys( )
B、entries( )
C、values( )
D、find( )
答案:D
解析:find函數(shù)用于找出數(shù)組中符合條件的第一個元素,并不是用于遍歷數(shù)組。
1.8 關(guān)于Proxy代理,下面說法錯誤的是:()
A、可以理解成在目標(biāo)對象之前,架設(shè)一層“攔截”
B、Proxy的get 方法用于攔截某個屬性的讀取操作。
C、Proxy的set方法用于攔截對對象的寫操作。
D、一旦對象設(shè)置Proxy代理后不可取消,所以要謹(jǐn)慎操作
答案:D
解析:可以用Proxy.revocable( )來取消代理,并不是不可以取消的。
1.9 關(guān)于Set結(jié)構(gòu)的實例方法,下面說法錯誤的是:()
A、set方法用于添加成員
B、clear方法用于清除所有成員。
C、entries方法返回成員的位置索引和值的遍歷器
D、values方法返回成員值的便利器
答案:C
解析:返回的是鍵名和鍵值的遍歷器;特別注意的是:set結(jié)構(gòu)的鍵名和鍵值是同一個值。
1.10 下面關(guān)于類class的描述,錯誤的是:()
A、 JavaScript的類class本質(zhì)上是基于原型prototype的實現(xiàn)方式做了進一步的封裝
B、 constructor構(gòu)造方法是必須的
C、 如果類的constructor構(gòu)造方法有多個,后者會覆蓋前者
D、 類的靜態(tài)方法可以通過類名調(diào)用,不需要實例化
答案:C
解析:同一個類的constructor構(gòu)造方法只能有一個,否則程序會報錯。
1.11 關(guān)于Promise對象的狀態(tài),下列說法錯誤的是:()
A、 三種狀態(tài)分別是:pending初始狀態(tài)、fulfilled成功、rejected失敗
B、 pending初始狀態(tài)可以狀變成fulfilled成功
C、 rejected失敗不可以狀變成pending初始狀態(tài)
D、 rejected失敗可以狀變成fulfilled成功
答案:D
解析:A、B、C的說法都是正確的,rejected失敗和fulfilled成功之間不能相互轉(zhuǎn)換,故D選項是錯誤的。
1.12 關(guān)于新特性Generator函數(shù)的描述,錯誤的是:()
A、Generator函數(shù),又稱生成器函數(shù)
B、聲明Generator函數(shù)的關(guān)鍵字是:function*
C、Generator函數(shù)執(zhí)行后得到的一個生成器
D、使用return語句使Generator函數(shù)暫停執(zhí)行,直到next方法的調(diào)用
答案:D
解析:使函數(shù)暫停執(zhí)行的關(guān)鍵字是yield,不是return;return語句是使函數(shù)停止執(zhí)行并退出。
1.13 Generator函數(shù)的yield關(guān)鍵字的作用是:()
A、停止執(zhí)行
B、退出函數(shù)
C、暫停執(zhí)行,等待next( )方法調(diào)用
D、停止執(zhí)行,可自行恢復(fù)執(zhí)行
答案:C
解析:Generator函數(shù)可以有很多個yield。而return代表的是終止執(zhí)行,yield代表的是暫停執(zhí)行,后續(xù)通過調(diào)用生成器的next( )方法,可以恢復(fù)執(zhí)行。
1.14 module模塊中,對下列語句的描述,錯誤的是:()
A、export 導(dǎo)出
B、import 導(dǎo)入
C、export default 默認(rèn)導(dǎo)出
D、import * as 重命名
答案:D
解析:import as:星號符實現(xiàn)的是整體導(dǎo)入。而重命名的實現(xiàn)方式是:import { name as myname }。
1.15 在類的繼承中,關(guān)于super的說法錯誤的是:()
A、 在子類的構(gòu)造函數(shù),必須先調(diào)用super( )
B、 super相當(dāng)于子類的引用
C、 先調(diào)用super( ),才可以使用this
D、 super( )相當(dāng)于父類構(gòu)造函數(shù)的調(diào)用
答案:B
解析:super是父類的引用,我們可以通過super來調(diào)用父類的方法和屬性。
2、簡答題
2.1 說出至少5個ES6的新特性,并簡述它們的作用。(簡答題)
答:
1、let關(guān)鍵字,用于聲明只在塊級作用域起作用的變量。 2、const關(guān)鍵字,用于聲明一個常量。 3、解構(gòu)賦值,一種新的變量賦值方式。常用于交換變量值,提取函數(shù)返回值,設(shè)置默認(rèn)值。 4、Symbol數(shù)據(jù)類型,定義一個獨一無二的值。 5、Proxy代理,用于編寫處理函數(shù),來攔截目標(biāo)對象的操作。 6、for...of遍歷,可遍歷具有iterator 接口的數(shù)據(jù)結(jié)構(gòu)。 7、Set結(jié)構(gòu),存儲不重復(fù)的成員值的集合。 8、Map結(jié)構(gòu),鍵名可以是任何類型的鍵值對集合。 9、Promise對象,更合理、規(guī)范地處理異步操作。 10、Class類定義類和更簡便地實現(xiàn)類的繼承。
3、編程題
3.1 使用解構(gòu)賦值,實現(xiàn)兩個變量的值的交換
答:
let a = 1; let b = 2; [a,b] = [b,a];
3.2 使用模板字符串改寫下面的代碼。(ES5 to ES6改寫題)
let iam = "我是"; let name = "大彬哥"; let str = "大家好,"+iam+name+",我想死你們啦。";
改成模板字符串:
let iam = `我是`; let name = `大彬哥`; let str = `大家好,${iam+name},我想死你們啦。`;
3.3 promise對象的用法,手寫一個promise
promise是一個構(gòu)造函數(shù),下面是一個簡單實例
var promise = new Promise((resolve,reject) => { if (操作成功) { resolve(value) } else { reject(error) } }) promise.then(function (value) { // success },function (value) { // failure })
3.4 閱讀下面的代碼,并用for...of改成它。(ES5 to ES6改寫題)
let arr = ["a","b","c","d","e"]; let sum = "z"; for(let i=0;i改:
let arr = ["a","b","c","d","e"]; let sum = "z"; for(value of arr){ sum += value; }4、運行分析題
4.1 分析下列程序代碼,得出運行結(jié)果,解釋其原因
const promise = new Promise((resolve, reject) => { resolve("success1") reject("error") resolve("success2") }) promise .then((res) => { console.log("then: ", res) }) .catch((err) => { console.log("catch: ", err) }) 運行結(jié)果: then:success1 原因: 構(gòu)造函數(shù)中的 resolve 或 reject 只有第一次執(zhí)行有效,多次調(diào)用沒有任何作用4.2 以下代碼依次輸出的內(nèi)容是?
setTimeout(function () { console.log(1) }, 0); new Promise(function executor(resolve) { console.log(2); for (var i = 0; i < 10000; i++) { i == 9999 && resolve(); } console.log(3); }).then(function () { console.log(4); }); console.log(5);解析:
首先先碰到一個 setTimeout,于是會先設(shè)置一個定時,在定時結(jié)束后將傳遞這個函數(shù)放到任務(wù)隊列里面,因此開始肯定不會輸出 1 。 然后是一個 Promise,里面的函數(shù)是直接執(zhí)行的,因此應(yīng)該直接輸出 2 3 。 然后,Promise 的 then 應(yīng)當(dāng)會放到當(dāng)前 tick 的最后,但是還是在當(dāng)前 tick 中。 因此,應(yīng)當(dāng)先輸出 5,然后再輸出 4 , 最后在到下一個 tick,就是 1 。 2 3 5 4 15、總結(jié)
相信通過本次測試,大家又加深了對ES6的理解。
對沒有完全掌握的部分,接下來可以進行有針對性的訓(xùn)練,那么你將在距離成為大神的道路上,又更近一步啦。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/109622.html
摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進,適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...
摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進,適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...
摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進,適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...
閱讀 3405·2021-11-08 13:12
閱讀 2934·2021-10-15 09:41
閱讀 1571·2021-10-08 10:05
閱讀 3431·2021-10-08 10:04
閱讀 2281·2021-09-29 09:34
閱讀 2643·2019-08-30 15:55
閱讀 3059·2019-08-30 15:45
閱讀 2714·2019-08-29 14:17