面向开发人员的10个最常见的ES6面试问题和答案

ES6面试问题和答案介绍:当 JavaScript 出现在编程世界的画面中时,出于营销原因选择了这个名字。那时 Java 在世界各地都很流行(但你最好知道两者是不同的)。后来它被提交给 ECMA(欧洲计算机制造商协会)以标准化该语言及其规范。

面向开发人员的10个最常见的ES6面试问题和答案

文章图片
后来它被命名为 ES 的 ECMAScript。第一版于 1997 年 6 月发布。ES6 是该语言的第六版,后来更名为 ECMAScript 2015。该版本引入了许多新特性,例如类、模块、迭代器、for/of 循环、箭头函数、类型化数组、承诺、反思等。 
常见的ES6面试题和答案有哪些?2016 年 6 月,ES6 发布,后来更名为 ECMAScript 2015。2017 年 6 月,第 8 版发布,其中包含一些并发和原子性、与 promise 的语法集成(async/await)的功能。让我们讨论一些你应该为面试准备的常见问题。这些问题将有助于清除专门针对前端开发角色的面试。
1.什么是公共ES6的功能设定?
以下是 ES6 的共同特性……
  • 支持常量/不可变变量。
  • 块作用域支持变量、常量、函数。
  • 箭头函数
  • 扩展参数处理
  • 默认参数
  • 模板文字和扩展文字。
  • 解构赋值
  • 箭头函数
  • Promises
  • Classes
  • 模块
  • 支持 Map/Set 和 WeakMap/WeakSet
  • Promises、本地化、元编程、国际化
2. let 和 const 是什么?两者与 var 有何不同?
ES6面试问题和答案示例介绍:在 JavaScript 中,当我们使用 var 关键字声明任何变量时。var 关键字是函数作用域。我们可以在函数内访问变量。这导致每当我们必须创建一个新的作用域时,都会将代码包装在一个函数中。
Let 和 const 都是块作用域。如果你使用这些关键字声明一个变量,那么它只存在于围绕它们的最里面的块中。假设你在块内使用 let 声明了一个变量(如果是条件或 for 循环),那么它只能在块内访问。 
下面是一个 let 关键字的例子……
  • Javascript
if(true) { let a=0; console.log(a); //prints 0; }console.log(a); throws ReferenceError: a is not defined.

Const 在 JavaScript 中是不可变的。一旦它被声明,你就不能改变或重新分配它的值。 
  • Javascript
const a=0; a=1; // TypeError: Assignment to constatnt variable. const b= [ 1, 2]; b.push(3); //[ 1, 2, 3] b[ 3]= 4; // [ 1, 2, 3, 4]

练习使用 let 和 const 而不是 var 关键字。 
3. 什么是箭头函数?普通函数和箭头函数有什么区别?
ES6最新面问题和答案合集 - 在 ES6 中定义了箭头函数来定义函数并使用它。基本上,它是箭头函数的速记符号。你可以将参数列表 (.....) 传递给箭头函数,然后是 =>marker 和函数体。如果你使用单个参数声明箭头函数,则不需要使用括号。
  • Javascript
function add(a, b) { return a+b; }; //Implementation with arrow functionconst add = (a, b) =>a+b; // With single argument, no parenthesis requiredconst add5 = a => 5+a;

让我们讨论箭头函数和普通函数之间的一些区别。
  • 他们没有自己的版本,并且他们关闭了这一点。
  • 它们可以有一个简洁的正文而不是冗长的正文。(他们也可以有一个冗长的身体)
  • 你不能将它们用作构造函数。不允许将 new 与箭头函数一起使用。这只是意味着箭头函数不能有原型属性。
  • 箭头函数没有生成器语法。例如:没有等效于 function *foo() {...} 的箭头。
4. 什么是Set?
ES6最新面问题和答案合集:Set是新值的集合。在 Set 中,不应有任何重复值。所有的值都应该是唯一的。这些值可以是原始类型或对象引用。
  • Javascript
var mySet = new Set(); mySet.add(1); // Set [ 1] mySet.add(5); // Set [ 1, 5] mySet.add(5); // Set [ 1, 5] --ignored

NaN 和 undefined 可以存储在 Set 中。 
5. 什么是生成器功能?
【面向开发人员的10个最常见的ES6面试问题和答案】常见的ES6面试题和答案有哪些?这是 ES6 的一个新特性。生成器函数允许你随时间生成许多值,返回一个对象。我们可以迭代这个对象,我们可以一次从函数中提取一个值。当你调用生成器函数时,它返回一个可迭代对象。我们在 ES6 中使用 * 符号作为带有新的“yield”关键字的生成器函数。
  • Javascript
function *infiniteNumbers() { let n=1; while(true) { yield n++; } }const numbers = infiniteNumbers(); // returns an iterable objectnumbers.next(); // { value: 1, done: false} numbers.next(); // { value: 2, done: false} numbers.next(); // { value: 3, done: false}

6. ES6 中的展开运算符是什么?
ES6面试问题和答案介绍:展开运算符用于获取参数列表。它由三个点 (...) 表示。基本上展开运算符采用可迭代对象(例如数组或字符串)并将其扩展为单个元素。在 JavaScript 中,主要用于制作 JS 的浅拷贝。它使你的代码简洁并提高了代码的可读性。
你可以使用扩展运算符来组合或执行数组之间的串联。下面给出一个例子......
  • Javascript
let num1 = [ 40,50,60]; let num2 = [ 10,20,30,...num1,70,80,90,100]; console.log(num2);

7. ES6 中的解构是什么?
在 ES6 中,解构被引入来从数组和对象中提取数据到一个单独的变量中。它允许你从对象和数组中提取较小的片段。下面给出一个例子......
  • Javascript
let fullname =[ 'Alan','Rickman']; let [ fname,lname] = fullname; console.log (fname,lname);

8. 在 ES6 中定义 Map。
在引入 ES6 之前,我们使用对象来映射键和值。Map 成为 ES6 中一种以键值对表示数据的新方式。Map 是有序的,它会记住键的插入顺序。你可以按元素的插入顺序遍历元素。 
下面是 Map 的表示
var map = new Map([ iterable]);

9. 解释 ES6 中的 Promise。
常见的ES6面试题和答案有哪些?在 JavaScript 中,有一个异步编程的概念。在异步编程中,你可以从主线程单独运行进程。在 ES6 中,promise 是处理异步编程的最简单方法。根据操作结果,可以拒绝或解决承诺。在 ES6 中引入 promise 之前,回调用于处理异步编程。
但它产生了回调地狱的问题,并引入了承诺来克服这个问题。 
10. JavaScript 中的回调和回调地狱是什么?
在回调中,一个函数在另一个函数完成后被执行。在 JavaScript 中,回调有助于处理事件。我们将一个函数作为另一个函数的参数传递给另一个函数。 
当我们在 Web 应用程序中使用回调时,很多时候回调会嵌套。过度使用回调会使你的 Web 应用程序变得混乱并导致回调地狱。 
ES6最新面问题和答案合集总结
我们已经包含了10 个重要的ES6面试问题和答案,这些问题对于面试来说非常重要。除了这些问题,ES6 中还有一些其他重要的概念。例如…
  • JavaScript 中的模块
  • 在 JavaScript 中提升
  • Babel的概念
  • Webpack 的概念
  • Weakset的概念
  • Weakmap的概念
  • 模板文字
要学习 JavaScript,请参阅JavaScript 教程

    推荐阅读