返回

ES6 面试中的最强答案

前端

  1. 变量声明

let 声明变量

ES6 引入了 let 来声明变量。let 声明的变量是块级作用域,这意味着它们只在声明它们的块中可用。这与 var 声明的变量不同,var 声明的变量是全局作用域或函数作用域。

let x = 10;
{
  let y = 20;
  console.log(x); // 10
  console.log(y); // 20
}
console.log(x); // 10
console.log(y); // ReferenceError: y is not defined

const 声明常量

ES6 还引入了 const 关键字来声明常量。const 声明的常量是只读的,这意味着它们不能被重新赋值。

const PI = 3.14;
PI = 3.15; // TypeError: Assignment to constant variable.

2. 解构表达式

数组解构

ES6 引入了数组解构语法,它允许我们从数组中提取值并将其存储在变量中。

const arr = [1, 2, 3];
const [x, y, z] = arr;
console.log(x); // 1
console.log(y); // 2
console.log(z); // 3

对象解构

ES6 还引入了对象解构语法,它允许我们从对象中提取属性并将其存储在变量中。

const obj = {
  name: 'John Doe',
  age: 30,
  city: 'New York'
};
const { name, age, city } = obj;
console.log(name); // John Doe
console.log(age); // 30
console.log(city); // New York

3. 字符串扩展

ES6 为字符串扩展了几个新的 API:

includes()

includes() 方法返回一个布尔值,表示是否包含指定的子字符串。

const str = 'Hello World';
console.log(str.includes('Hello')); // true
console.log(str.includes('World')); // true
console.log(str.includes('!')); // false

startsWith()

startsWith() 方法返回一个布尔值,表示是否以指定的子字符串开头。

const str = 'Hello World';
console.log(str.startsWith('Hello')); // true
console.log(str.startsWith('World')); // false
console.log(str.startsWith('!')); // false

endsWith()

endsWith() 方法返回一个布尔值,表示是否以指定的子字符串结尾。

const str = 'Hello World';
console.log(str.endsWith('Hello')); // false
console.log(str.endsWith('World')); // true
console.log(str.endsWith('!')); // false

结论

ES6 还有许多其他新特性,如箭头函数、类、模板字符串和模块等。在面试中,你只需要掌握一些最基本的新特性,就能展现你的技术能力和对 JavaScript 的深刻理解。