ES6介绍
ECMAScript 6(ES6),又称 ECMAScript 2015,是 JavaScript 的一个重要版本,引入了许多新特性,使得开发者能够编写更加简洁、优雅和高效的代码。本文将介绍 ES6 的一些关键特性,并通过代码示例展示其用法。
1、变量声明
在 ES6 之前,JavaScript 只有 var 用于变量声明。ES6 引入了 let 和 const,它们提供了块级作用域和不可变的变量。
1.1 let关键字
let关键字用于声明可变的变量,它的作用范围限定在当前的块级作用域内,包括花括号({})内部的任何代码块。在同一个作用域内,不能重复声明同名的let变量。
在以前使用 var 声明变量会存在:越域、重复声明、变量提升等问题,我们来看看代码演示
跨域问题
// var 越域的问题
if (true) {
var x = 10;
}
console.log(x); // 输出 :10,变量 x 泄露到了全局作用域
// let 的块级作用域
if (true) {
let y = 20;
}
console.log(y); // ReferenceError: y is not defined
1
2
3
4
5
6
7
8
9
10
11
重复声明
// var 可以声明多次
// let 只能声明一次
var a = 1
var a = 2
let b = 3
let b = 4
console.log(a) // 2
console.log(b) // Identifier 'n' has already been declared
1
2
3
4
5
6
7
8
变量提升
// var 会变量提升
// let 不存在变量提升
console.log(x); // undefined
var x = 10;
console.log(y); //ReferenceError: y is not defined
let y = 20;
1
2
3
4
5
6
1.2 const关键字
const 关键字用于声明常量,它的作用范围也是在当前的块级作用域内,const 声明的变量是不可变的
// 1. 声明之后不允许改变
// 2. 一但声明必须初始化,否则会报错
const a = 1;
a = 3; //Uncaught TypeError: Assignment to constant variable.
1
2
3
4
2、箭头函数
学过 java 的小伙伴一定知道 lambda 表达式,与之一样箭头函数提供了一种更简洁的函数定义方式,并且不会绑定自己的 this
// 传统函数
function sum(a, b) {
return a + b;
}
// 箭头函数
const sum = (a, b) => a + b;
console.log(sum(2, 3)); // 5
// 只有一个参数
const square = x => x * x;
console.log(square(4)); // 16
// 没有参数
const greet = () => 'Hello, World!';
console.log(greet()); // Hello, World!