ECMAScript, standard di sebalik JavaScript, terus berkembang, membawa ciri baharu yang meningkatkan produktiviti pembangun dan memudahkan amalan pengekodan. Pada tahun 2024, ES15 memperkenalkan beberapa tambahan menarik yang dibina berdasarkan warisan ES6 . Artikel ini menyelami kemas kini terbaharu dalam ES15 dan menyediakan penyegaran tentang ciri ES6 utama yang mengubah pembangunan JavaScript.
Penghias (Tamat)
function log(target, key, descriptor) { const original = descriptor.value; descriptor.value = function (...args) { console.log(`Called ${key} with args: ${args}`); return original.apply(this, args); }; } class Example { @log doSomething(value) { console.log(`Doing something with ${value}`); } } const example = new Example(); example.doSomething('test'); // Logs: Called doSomething with args: test // Doing something with test
Pengumpulan Tatasusunan
const items = [ { type: 'fruit', name: 'apple' }, { type: 'fruit', name: 'banana' }, { type: 'vegetable', name: 'carrot' }, ]; const grouped = items.group(item => item.type); console.log(grouped); // { fruit: [{ type: 'fruit', name: 'apple' }, { type: 'fruit', name: 'banana' }], // vegetable: [{ type: 'vegetable', name: 'carrot' }] }
Perihalan Simbol
const mySymbol = Symbol.for('userToken'); console.log(mySymbol.description); // "userToken"
Pengurusan Sumber Eksplisit
class FileHandler { constructor(name) { this.name = name; console.log(`File ${name} opened`); } [Symbol.dispose]() { console.log(`File ${this.name} closed`); } } { using const file = new FileHandler('example.txt'); // Perform file operations } // Logs: File example.txt closed
Fungsi Anak Panah
const add = (a, b) => a + b; console.log(add(2, 3)); // 5
Templat Huruf
const name = 'Alice'; console.log(`Hello, ${name}!`); // Hello, Alice!
Memusnahkan
const [a, b] = [1, 2]; const { name, age } = { name: 'Bob', age: 25 };
Kelas
class Animal { constructor(name) { this.name = name; } speak() { console.log(`${this.name} makes a noise.`); } }
Modul
export function greet() { console.log('Hello!'); } import { greet } from './greet.js';
Janji
fetch('https://api.example.com') .then(response => response.json()) .then(data => console.log(data)) .catch(err => console.error(err));
Async/Tunggu
async function fetchData() { const response = await fetch('https://api.example.com'); const data = await response.json(); console.log(data); }
Parameter Lalai
function greet(name = 'Guest') { console.log(`Hello, ${name}!`); }
Operator Sebarkan dan Rehat
const arr1 = [1, 2]; const arr2 = [...arr1, 3, 4]; // [1, 2, 3, 4]
Rehat (...) untuk mengumpul hujah:
function log(target, key, descriptor) { const original = descriptor.value; descriptor.value = function (...args) { console.log(`Called ${key} with args: ${args}`); return original.apply(this, args); }; } class Example { @log doSomething(value) { console.log(`Doing something with ${value}`); } } const example = new Example(); example.doSomething('test'); // Logs: Called doSomething with args: test // Doing something with test
ECMAScript terus membentuk masa depan JavaScript dengan kemas kini tambahan yang memperhalusi bahasa dan menambah keupayaan baharu yang berkuasa. Sama ada anda memanfaatkan ciri ES15 terbaharu seperti penghias dan pengurusan sumber atau menyemak semula kemas kini transformatif daripada ES6 , kekal terkini memastikan kod JavaScript anda kekal moden dan cekap.
Perihalan Meta:
Terokai ciri ECMAScript 2024 terbaharu dan lawati semula kemas kini transformatif ES6 yang terus membentuk pembangunan JavaScript moden.
TLDR - Sorotan untuk Skimmers:
Apakah ciri ECMAScript kegemaran anda, dan bagaimana ia telah meningkatkan proses pembangunan anda? Kongsi pendapat anda dalam ulasan!
Atas ialah kandungan terperinci Apa yang Baharu dalam ECMAScript A Menyelam ke dalam ES& A Refresher pada ESFeatures. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!