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语言,并且可以让你的代码更加简洁和高效。