ES6筆試面試題總結

收集整理的一些ES6的筆試面試題,出處在最底部標明

把以下代碼運用兩種要領,來順次輸出0到9?

 var funcs = []
 for (var i = 0; i < 10; i++) {
    funcs.push(function() { console.log(i) })
 }
 funcs.forEach(function(func) {
    func()
 });
 
  • 應用ES5 閉包處置懲罰這個題目

    var funcs = []
    for (var i = 0; i < 10; i++) {
       func.push((function(value) {
           return function() {
               console.log(value)
           }
       }(i)))
    }
    
  • ES6 let

    for (let i = 0; i < 10; i++) {
       func.push(function() {
           console.log(i)
       })
    }
    

ES6的模板字符串有哪些新特徵?

  • 基礎的字符串格式化。將表達式嵌入字符串中舉行拼接。用${}來界定
  • 在ES5時我們經由過程反斜杠()來做多行字符串或許字符串一行行拼接。ES6反引號(“)直接搞定。

箭頭有哪些新特點?

  • 不需要function關鍵字來建立函數
  • 省略return關鍵字
  • 繼續當前上下文的 this 關鍵字

以下代碼順次輸出內容是?


 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,因而會先設置一個定時,在定時完畢后將通報這個函數放到使命行列內里,因而最先一定不會輸出 1 。 然後是一個 Promise,內里的函數是直接實行的,因而應當直接輸出 2 3 。 然後,Promise 的 then 應當會放到當前 tick 的末了,然則照樣在當前 tick 中。 因而,應當先輸出 5,然後再輸出 4 。 末了在到下一個 tick,就是 1 。 “2 3 5 4 1”

promise的道理?jquery的ajax返回的是promise對象嗎?

promise 只要2個狀況,勝利和失利,怎樣讓一個函數不管勝利和失利都能被挪用? Promise.all() 是干什麼用的,怎樣用?

promise.all()的運用:
Promise.all要領用於將多個Promise實例,包裝成一個新的Promise實例。
Promise.all要領接收一個數組作為參數,數組裡的元素都是Promise對象的實例,假如不是,就會先挪用下面講到的Promise.resolve要領,將參數轉為Promise實例,再進一步處置懲罰。(Promise.all要領的參數能夠不是數組,但必需具有Iterator接口,且返回的每一個成員都是Promise實例。)

var p =Promise.all([p1,p2,p3]);

p的狀況由p1、p2、p3決議,分為兩種狀況。

當該數組裡的一切Promise實例都進入Fulfilled狀況,Promise.all**返回的實例才會變成Fulfilled狀況。並將Promise實例數組的一切返回值構成一個數組,通報給Promise.all返回實例的回調函數**。
當該數組裡的某個Promise實例都進入Rejected狀況,Promise.all返回的實例會馬上變成Rejected狀況。並將第一個rejected的實例返回值通報給Promise.all返回實例的回調函數。

參考

http://www.bslxx.com/a/miansh…

    原文作者:我們不動
    原文地址: https://segmentfault.com/a/1190000014521633
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞