Деструктуриране, ES6: Изучаване на JavaScript
Подновявайки редовното си обучение по график, това е ден 8 от изучаването на JavaScript. Няма и осем дни, откакто започнах. Но това е 8-ми учебен ден. Започнах да научавам за ES6 и новите концепции, които идват с това.
ECMAScript 6
Това ще покрие някои от същите неща, които вече направих. Освен че тук използвам ES6, който има някои повече функции.
// Compare Scopes with Let and Var Keywords function checkScope() { let i = 'function scope'; if (true) { let i = 'block scope'; console.log('Block scope i is: ', i); } console.log('Function scope i is: ', i); return i; } // Editing Arrays const s = [5, 7, 2]; function editInPlace() { // Only change code below this line s[0] = 2 s[1] = 5 s[2] = 7 } editInPlace(); // FREEZE! function freezeObj() { const MATH_CONSTANTS = { PI: 3.14 }; // Only change code below this line Object.freeze(MATH_CONSTANTS) // Only change code above this line try { MATH_CONSTANTS.PI = 99; } catch(ex) { console.log(ex); } return MATH_CONSTANTS.PI; } const PI = freezeObj(); // Arrow Functions const magic = () => new Date() ; // Arrow Functions With Parameters const myConcat = (arr1, arr2) => { return arr1.concat(arr2) }; console.log(myConcat([1, 2], [3, 4, 5])); // Default Parameters const increment = (number, value = 1) => number + value; // Rest Parameters const sum = (...args) => { return args.reduce((a, b) => a + b, 0); } // Spread Operator const arr1 = ['JAN', 'FEB', 'MAR', 'APR', 'MAY']; let arr2; arr2 = [...arr1]; // Change this line console.log(arr2);
Успях да завърша този раздел с относителна лекота. Това беше завъртане на код, който вече знаех. Функциите със стрелки бяха единственият нов код, който научих. Следващото в курса беше деструктурирането. Нека се потопим направо в него!
Деструктуриране
Деструктурирането е нов начин за редактиране на стойности. Синтаксисът ме обърка. В един момент го разбрах.
// Extracting Values const HIGH_TEMPERATURES = { yesterday: 75, today: 77, tomorrow: 80 }; const { today, tomorrow } = HIGH_TEMPERATURES; // Assigning Object Variables const HIGH_TEMPERATURES = { yesterday: 75, today: 77, tomorrow: 80 }; const { today: highToday, tomorrow: highTomorrow } = HIGH_TEMPERATURES; // Nested Object Variables const LOCAL_FORECAST = { yesterday: { low: 61, high: 75 }, today: { low: 64, high: 77 }, tomorrow: { low: 68, high: 80 } }; const { today: { low: lowToday, high: highToday}} = LOCAL_FORECAST; // Assigning Variables From Arrays let a = 8, b = 6; [a , b] = [b, a]; // Re-Assigning Array Elements function removeFirstTwo(list) { const [a,b,...shorterList] = list; return shorterList; } const source = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; const sourceWithoutFirstTwo = removeFirstTwo(source);
Всички дадени отговори бяха моето решение на проблемите. Този раздел ще бъде завършен със следващата статия. Концепциите на ES6 са ми странни. Не е трудно. Просто е нов. Това е всичко за ден 8.