Современный JavaScript

Lesson 1, Advanced JavaScript, Shashkov

by shurikation

JavaScript

'use strict'; //это ES5

//ES5:
var name = 'John';
var age = 20;

console.log(name);//John
name = 'Ann';
console.log(name); //Ann

//ES6:
/* 
let - можем изменить (перезапись)
const - не можем изменить (только чтение). Кроме объектов. В объекте мы можем изменить данные, добавить значения и так далее. Почему? Объекты - ссылочный тип данных */
//Если константа избавляет нас от всяких magic numbers - если прям константа константа, то можно ее имя написать капсом
// Транспилятор - переводит код нового стандарта в старый

//Деструктуризация объекта:
const human =  {
 firstName: 'Kolya',
 lastName: 'Pupkin',
};

//Вариант 1:
const firstName = human.firstName;
const lastName = human.lastName;

//Но можно и так деструктрировать: Вариант 2
const {fisrtName, lastName} = human; // Но имя переменной должно соотвествовать свойству, но это поправимо:

const (firstName: fName, lastName) = human; //Теперь ашкыеТфьу запишется в переменную fName

const (firstName: fName, lastName, age = 21) = human; //age будет устновленным значением по умолчанию, если к объекте human нет значения age 

//Можно и так, делать вычисления и даже вызывать функции:
const (firstName: fName, lastName = 'Ivanov', age = 21 + 10) = human; //в lastName поскольку он определен в объекте будет все тот же Пупкин, а не Иванов. Если бы lastName не было, то был бы Иванов

const name = 'John';
let age = 20;

name = 'Bob';
console.log(name); //TypeError - попытка переопределить константу

const arr = [23, 54, 65];
//создать переменные, в которые положить эелементы массива

const [a, b] = arr; //23, 54
const [ , a, b] = arr; //54, 65

const arr2 = [23, 54, 65, 88. 00, 7];

//spread operator
const [q, w, ...restArr] = arr2;
//q = 23, w = 54, restArr = [65, 88, 00, 7]; //spread operator

//То же самое ... можно делать и с объектами:

const {firstName, lastName, ...restHuman} = human;
//Осоенно это удобно при работе с сервером

//Два кейса как это использовать
//Поменять значения перемнных местами в задачах про...