Junior
Με ποιες καινοτομίες στο ES6 είστε εξοικειωμένοι;
sobes.tech AI
Απάντηση από AI
- let, const, var: let και const για το μπλοκ πεδίο ορατότητας, var για λειτουργικό πεδίο. const για σταθερές, let για μεταβλητές που μπορούν να επαναπροσδιοριστούν.
- Βέλη (Arrow Functions): Συντομογραφία για δήλωση συναρτήσεων. Λεξικό
this. - Τιμές προτύπου (Template Literals): Επιτρέπουν την ενσωμάτωση εκφράσεων και πολυγραμμικών συμβολοσειρών.
const name = "World"; const greeting = `Hello, ${name}!`; // "Hello, World!" - Ανάθεση αποδόμησης (Destructuring Assignment): Βολικός τρόπος εξαγωγής τιμών από πίνακες και αντικείμενα.
const person = { firstName: "John", lastName: "Doe" }; const { firstName, lastName } = person; // firstName = "John", lastName = "Doe" - Τελεστής spread (...) και παράμετροι rest (...): Spread για επέκταση και συγχώνευση πινάκων/αντικειμένων. Rest για συλλογή των υπόλοιπων ορισμάτων σε πίνακα.
const arr1 = [1, 2]; const arr2 = [...arr1, 3, 4]; // [1, 2, 3, 4] function sum(...numbers) { return numbers.reduce((acc, current) => acc + current, 0); } sum(1, 2, 3); // 6 - Κλάσεις (Classes): Συντακτικό ζάχαρη πάνω από την πρωτοτυπική κληρονομικότητα.
class Car { constructor(brand) { this.brand = brand; } drive() { console.log(`${this.brand} οδηγεί.`); } } - Μονάδες (Modules): Εργαλείο για οργάνωση κώδικα με
importκαιexport.// module.js export const PI = 3.14; // main.js import { PI } from './module.js'; - Υποσχέσεις (Promises): Απλοποιούν τη δουλειά με ασύγχρονο κώδικα.
new Promise((resolve, reject) => { // Ασύγχρονη λειτουργία if (success) { resolve("Επιτυχία!"); } else { reject("Σφάλμα!"); } }) .then(result => console.log(result)) .catch(error => console.error(error)); - for...of βρόχος: Επανάληψη σε επαναληπτικά αντικείμενα.
const arr = [1, 2, 3]; for (const value of arr) { console.log(value); // 1, 2, 3 } - Set και Map: Νέες δομές δεδομένων. Set για μοναδικές τιμές, Map για ζεύγη κλειδιού-τιμής.