es6+新增特性有哪些

B站影视 日本电影 2025-03-10 04:55 2

摘要:const name = "Tom";console.log(`Hello, ${name}!`); // Hello, Tom!const user = { name: "Alice", age: 25 };const { name, age } = use

ES6+(ES6及以后版本,如ES7、ES8等)新增了许多特性,主要包括以下几个方面:

const name = "Tom";console.log(`Hello, ${name}!`); // Hello, Tom!const user = { name: "Alice", age: 25 };const { name, age } = user; console.log(name, age); // Alice 25const numbers = [1, 2, 3];const [first, second] = numbers;console.log(first, second); // 1 2const arr1 = [1, 2];const arr2 = [...arr1, 3, 4]; // [1, 2, 3, 4]const obj1 = { a: 1, b: 2 };const obj2 = { ...obj1, c: 3 }; // { a: 1, b: 2, c: 3 }const add = (a, b) => a + b;console.log(add(2, 3)); // 5const greet = (name = "Guest") => `Hello, ${name}!`;console.log(greet); // Hello, Guest!const age = 25;const user = { name, age }; // { name: "Alice", age: 25 }类(Class)class Person {constructor(name) {this.name = name;}sayHello {console.log(`Hello, I'm ${this.name}`);}}const p = new Person("Alice");p.sayHello; // Hello, I'm Alice// a.jsexport const greet = => console.log("Hello");// b.jsimport { greet } from "./a.js";greet;const fetchData = =>new Promise((resolve, reject) => {setTimeout( => resolve("Data loaded"), 1000);});fetchData.then((res) => console.log(res)); // Data loadedconst set = new Set([1, 2, 2, 3]);console.log(set); // Set { 1, 2, 3 }const map = new Map;map.set("key1", "value1");console.log(map.get("key1")); // value1const arr = [1, 2, 3];for (const num of arr) {console.log(num);}const sym = Symbol("unique");console.log(sym); // Symbol(unique)console.log([1, 2, 3].includes(2)); // true指数运算符(**)console.log(2 ** 3); // 8const fetchData = async => {return "Data loaded";};fetchData.then(console.log); // Data loadedconst obj = { a: 1, b: 2 };console.log(Object.entries(obj)); // [['a', 1], ['b', 2]]console.log(Object.values(obj)); // [1, 2]字符串填充console.log("5".padStart(2, "0")); // '05'console.log("5".padEnd(3, "0")); // '500'const obj1 = { a: 1, b: 2 };const obj2 = { ...obj1, c: 3 }; // { a: 1, b: 2, c: 3 }fetchData.then(console.log).catch(console.error).finally( => console.log("Done"));console.log([1, [2, [3, 4]]].flat(2)); // [1, 2, 3, 4]console.log([1, 2].flatMap(x => [x * 2])); // [2, 4]console.log(Object.fromEntries([["a", 1], ["b", 2]])); // { a: 1, b: 2 }const user = { profile: { name: "Alice" } };console.log(user?.profile?.name); // Aliceconsole.log(user?.address?.street); // undefinedconsole.log(null ?? "default"); // "default"console.log(0 ?? "default"); // 0Promise.allSettled([Promise.resolve(1), Promise.reject("error")]).then(console.log);console.log("hello world".replaceAll("l", "L")); // "heLLo worLd"Promise.any([Promise.reject("error"),Promise.resolve("success"),]).then(console.log); // "success"const data = await fetch("https://api.example.com/data").then(res => res.json);console.log(data);

ES6+ 带来了大量新特性,其中 ES6 是最大的一次更新,引入了 let、const、箭头函数、解构赋值、类、模块化等。后续版本(ES7+)继续增加了 async/await、可选链(?.)、Promise.allSettled、Object.hasOwn 等新特性。

你最关注哪些特性?可以针对某个特性深入探讨!

来源:福州共创科技

相关推荐