成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ES6—面試常見ES6問題集錦(14)

genedna / 3501人閱讀

摘要:函數(shù)的關鍵字的作用是停止執(zhí)行退出函數(shù)暫停執(zhí)行,等待方法調(diào)用停止執(zhí)行,可自行恢復執(zhí)行答案解析函數(shù)可以有很多個。簡答題說出至少個的新特性,并簡述它們的作用。簡答題答關鍵字,用于聲明只在塊級作用域起作用的變量。對象,更合理規(guī)范地處理異步操作。

通過對ES6系列文章的學習,相信大家對ES6已結有一定程度的了解。

所以本節(jié)的目的在于通過測試,便于讓大家了解在學習中的知識掌握情況,查缺補漏,一步一個腳印。

1、選擇題

1.1 下面不屬于關鍵字let的特點的是:( )

A、只在 let 命令所在的代碼塊內(nèi)有效

B、會產(chǎn)生變量提升現(xiàn)象

C、同一個作用域,不能重復聲明同一個變量

D、不能在函數(shù)內(nèi)部重新聲明參數(shù)

答案:B

解析:使用var關鍵字才會產(chǎn)生變量提升的現(xiàn)象。關鍵字let不會產(chǎn)生變量提升現(xiàn)象,所以必須先聲明定義后使用,否則程序拋出異常。

1.2 關于定義常量的關鍵字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 在對象的解構賦值中,var {a,b,c} = { “c”:10, ”b”:9, ”a”:8 } 結果中,a、b、c的值分別是:()

A、10 9 8

B、8 9 10

C、undefined 9 undefined

D、null 9 null

答案:B

解析:對象的解構賦值不會受到屬性的排列次序影響。

1.4 關于模板字符串,下列說法不正確的是:()

A、使用反引號標識

B、插入變量的時候使用${ }

C、所有的空格和縮進都會被保留在輸出中

D、${ }中的表達式不能是函數(shù)的調(diào)用

答案:D

解析:${ }中可以放任意的JavaScript表達式,包括運算表達式、對象屬性、函數(shù)調(diào)用等。

1.5 關于字符串擴展的新函數(shù),下面描述錯誤的是:()

A、includes函數(shù)用于判斷字符串中是否含有指定的子字符串

B、repeat函數(shù)將目標字符串重復N次,目標字符串被修改

C、startsWidth函數(shù)判斷指定的子字符串是否出現(xiàn)在目標字符串頭部位置

D、endWidth函數(shù)判斷指定的子字符串是否出現(xiàn)在目標字符串尾部位置

答案:B

解析:repeat函數(shù)將目標字符串重復N次,會返回一個新的字符串,不影響目標字符串。

1.6 數(shù)組擴展的fill( )函數(shù),[1,2,3].fill(4)的結果是:()

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 關于Proxy代理,下面說法錯誤的是:()

A、可以理解成在目標對象之前,架設一層“攔截”

B、Proxy的get 方法用于攔截某個屬性的讀取操作。

C、Proxy的set方法用于攔截對對象的寫操作。

D、一旦對象設置Proxy代理后不可取消,所以要謹慎操作

答案:D

解析:可以用Proxy.revocable( )來取消代理,并不是不可以取消的。

1.9 關于Set結構的實例方法,下面說法錯誤的是:()

A、set方法用于添加成員

B、clear方法用于清除所有成員。

C、entries方法返回成員的位置索引和值的遍歷器

D、values方法返回成員值的便利器

答案:C

解析:返回的是鍵名和鍵值的遍歷器;特別注意的是:set結構的鍵名和鍵值是同一個值。

1.10 下面關于類class的描述,錯誤的是:()

A、 JavaScript的類class本質(zhì)上是基于原型prototype的實現(xiàn)方式做了進一步的封裝

B、 constructor構造方法是必須的

C、 如果類的constructor構造方法有多個,后者會覆蓋前者

D、 類的靜態(tài)方法可以通過類名調(diào)用,不需要實例化

答案:C

解析:同一個類的constructor構造方法只能有一個,否則程序會報錯。

1.11 關于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成功之間不能相互轉換,故D選項是錯誤的。

1.12 關于新特性Generator函數(shù)的描述,錯誤的是:()

A、Generator函數(shù),又稱生成器函數(shù)

B、聲明Generator函數(shù)的關鍵字是:function*

C、Generator函數(shù)執(zhí)行后得到的一個生成器

D、使用return語句使Generator函數(shù)暫停執(zhí)行,直到next方法的調(diào)用

答案:D

解析:使函數(shù)暫停執(zhí)行的關鍵字是yield,不是return;return語句是使函數(shù)停止執(zhí)行并退出。

1.13 Generator函數(shù)的yield關鍵字的作用是:()

A、停止執(zhí)行

B、退出函數(shù)

C、暫停執(zhí)行,等待next( )方法調(diào)用

D、停止執(zhí)行,可自行恢復執(zhí)行

答案:C

解析:Generator函數(shù)可以有很多個yield。而return代表的是終止執(zhí)行,yield代表的是暫停執(zhí)行,后續(xù)通過調(diào)用生成器的next( )方法,可以恢復執(zhí)行。

1.14 module模塊中,對下列語句的描述,錯誤的是:()

A、export 導出

B、import 導入

C、export default 默認導出

D、import * as 重命名

答案:D

解析:import as:星號符實現(xiàn)的是整體導入。而重命名的實現(xiàn)方式是:import { name as myname }。

1.15 在類的繼承中,關于super的說法錯誤的是:()

A、 在子類的構造函數(shù),必須先調(diào)用super( )

B、 super相當于子類的引用

C、 先調(diào)用super( ),才可以使用this

D、 super( )相當于父類構造函數(shù)的調(diào)用

答案:B

解析:super是父類的引用,我們可以通過super來調(diào)用父類的方法和屬性。

2、簡答題

2.1 說出至少5個ES6的新特性,并簡述它們的作用。(簡答題)

答:

 1、let關鍵字,用于聲明只在塊級作用域起作用的變量。

 2、const關鍵字,用于聲明一個常量。

 3、解構賦值,一種新的變量賦值方式。常用于交換變量值,提取函數(shù)返回值,設置默認值。

 4、Symbol數(shù)據(jù)類型,定義一個獨一無二的值。

 5、Proxy代理,用于編寫處理函數(shù),來攔截目標對象的操作。

 6、for...of遍歷,可遍歷具有iterator 接口的數(shù)據(jù)結構。

 7、Set結構,存儲不重復的成員值的集合。

 8、Map結構,鍵名可以是任何類型的鍵值對集合。

 9、Promise對象,更合理、規(guī)范地處理異步操作。

 10、Class類定義類和更簡便地實現(xiàn)類的繼承。


3、編程題

3.1 使用解構賦值,實現(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是一個構造函數(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 分析下列程序代碼,得出運行結果,解釋其原因

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)
  })



運行結果:
then:success1

原因:
構造函數(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ù)放到任務隊列里面,因此開始肯定不會輸出 1 。 

然后是一個 Promise,里面的函數(shù)是直接執(zhí)行的,因此應該直接輸出 2 3 。 

然后,Promise 的 then 應當會放到當前 tick 的最后,但是還是在當前 tick 中。 

因此,應當先輸出 5,然后再輸出 4 , 最后在到下一個 tick,就是 1 。

2 3 5 4 1

5、總結

相信通過本次測試,大家又加深了對ES6的理解。

對沒有完全掌握的部分,接下來可以進行有針對性的訓練,那么你將在距離成為大神的道路上,又更近一步啦。

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/109622.html

相關文章

  • 前端面試題總結(js、html、小程序、React、ES6、Vue、算法、全棧熱門視頻資源)

    摘要:并總結經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關注微信小程序的開發(fā)和面試問題,由基礎到困難循序漸進,適合面試和開發(fā)小程序。并總結vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...

    li21 評論0 收藏0
  • 前端面試題總結(js、html、小程序、React、ES6、Vue、算法、全棧熱門視頻資源)

    摘要:并總結經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關注微信小程序的開發(fā)和面試問題,由基礎到困難循序漸進,適合面試和開發(fā)小程序。并總結vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...

    AaronYuan 評論0 收藏0
  • 前端面試題總結(js、html、小程序、React、ES6、Vue、算法、全棧熱門視頻資源)

    摘要:并總結經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關注微信小程序的開發(fā)和面試問題,由基礎到困難循序漸進,適合面試和開發(fā)小程序。并總結vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...

    pumpkin9 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<