当前位置:实例文章 » 其他实例» [文章]ES6 新特性(详细复习笔记)--下

ES6 新特性(详细复习笔记)--下

发布人:shili8 发布时间:2025-03-09 09:13 阅读次数:0

**ES6 新特性详细复习笔记**

###1. let 和 const 关键字在 ES5 中,我们使用 var 来声明变量,但 var 有一些缺陷,如变量提升、作用域链等问题。ES6 引入了 let 和 const两个新的关键字来解决这些问题。

#### letlet 是块级作用域的变量,意味着它只在当前代码块内有效,不会被提升到函数顶部。

javascript{
 let a =10;
 console.log(a); //10}
console.log(a); // ReferenceError: a is not defined


#### constconst 是块级作用域的常量,意味着它只在当前代码块内有效,不会被提升到函数顶部,并且不能修改其值。

javascript{
 const PI =3.14;
 console.log(PI); //3.14}
console.log(PI); // ReferenceError: PI is not defined


###2. 解构赋值解构赋值是将数组或对象的元素直接赋给变量。

#### 数组解构
javascriptlet [a, b] = [1,2];
console.log(a); //1console.log(b); //2


#### 对象解构
javascriptlet { name: n, age: a } = { name: 'John', age:30 };
console.log(n); // Johnconsole.log(a); //30


###3. 函数参数的默认值ES6 允许函数参数有默认值。

javascriptfunction greet(name = 'World') {
 console.log(`Hello, ${name}!`);
}
greet(); // Hello, World!
greet('Alice'); // Hello, Alice!


###4. 箭头函数箭头函数是 ES6 中的一个新特性,它可以用来定义小型函数。

javascriptlet add = (a, b) => a + b;
console.log(add(2,3)); //5


###5. 模板字符串模板字符串是 ES6 中的一个新特性,它允许使用反斜杠来表示多行字符串。

javascriptlet name = 'John';
let age =30;
console.log(`My name is ${name}, I am ${age} years old.`);
// My name is John, I am30 years old.


###6. Set 和 MapSet 和 Map 是 ES6 中的两个新数据结构,它们分别用于存储唯一值和键值对。

#### Set
javascriptlet set = new Set([1,2,3]);
console.log(set); // Set {1,2,3}
set.add(4);
console.log(set); // Set {1,2,3,4}


#### Map
javascriptlet map = new Map();
map.set('name', 'John');
map.set('age',30);
console.log(map.get('name')); // Johnconsole.log(map.get('age')); //30


###7. PromisePromise 是 ES6 中的一个新特性,它用于处理异步操作。

javascriptfunction timeout(ms) {
 return new Promise((resolve, reject) => {
 setTimeout(() => {
 resolve();
 }, ms);
 });
}

timeout(1000).then(() => console.log('Timeout!'));


###8. async/awaitasync/await 是 ES6 中的一个新特性,它用于简化 Promise 的使用。

javascriptfunction timeout(ms) {
 return new Promise((resolve, reject) => {
 setTimeout(() => {
 resolve();
 }, ms);
 });
}

async function main() {
 await timeout(1000);
 console.log('Timeout!');
}
main();


###9. ClassClass 是 ES6 中的一个新特性,它用于定义类。

javascriptclass Person {
 constructor(name, age) {
 this.name = name;
 this.age = age;
 }

 sayHello() {
 console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
 }
}

let person = new Person('John',30);
person.sayHello();
// Hello, my name is John and I am30 years old.


###10. ProxyProxy 是 ES6 中的一个新特性,它用于创建代理对象。

javascriptlet target = { foo: 'bar' };
let handler = {
 get(target, property) {
 console.log(`Getting ${property}`);
 return target[property];
 }
};

let proxy = new Proxy(target, handler);
console.log(proxy.foo); // Getting foo bar


以上就是 ES6 新特性的详细复习笔记。这些新特性可以帮助你更好地理解 JavaScript语言,并且可以让你的代码更加简洁和高效。

其他信息

其他资源

Top