Знакомство с ES6. Урок 20

Содержание

Слайд 2

ES6

let&const
Деструктуризация (массивов и объектов)
…Spread-оператор

ES6 let&const Деструктуризация (массивов и объектов) …Spread-оператор

Слайд 3

Функции

Функции

Слайд 4

Параметры по умолчанию

Параметры по умолчанию

Слайд 7

Оператор spread

В нашем случае, rest - это массив, а значит, можно использовать

Оператор spread В нашем случае, rest - это массив, а значит, можно
методы map, forEach и т.д.

Слайд 8

Свойство name

Свойство name

Слайд 9

Стрелочные функции

Стрелочные функции

Слайд 10

Стрелочные функции

Выражения имеют более короткий синтаксис, всегда анонимные и лексически привязанные к

Стрелочные функции Выражения имеют более короткий синтаксис, всегда анонимные и лексически привязанные
значению this.
Синтаксис: (param1, param2, paramN) => expression

Слайд 11

Особенности использования стрелочных функций

Лексическое связывание. Значения this, super и arguments определяются

Особенности использования стрелочных функций Лексическое связывание. Значения this, super и arguments определяются
не тем, как стрелочные функции были вызваны, а тем, как они были созданы
Неизменяемые this, super и arguments. Значения этих переменных внутри стрелочных функций остаются неизменными на протяжении всего жизненного цикла функции
Стрелочные функции не могут быть использованы как конструктор
Недоступность «собственного» значения переменной arguments, this ...

Слайд 12

Короткая запись

Короткая запись

Слайд 13

Пример

Пример

Слайд 14

Отсутствие Arguments

Отсутствие Arguments

Слайд 15

Отсутствие запуска с new

Отсутствие запуска с new

Слайд 16

Строки

Строки

Слайд 17

Шаблонные строки

Выглядят как обычные строки, за исключением того, что обернуты символами обратных

Шаблонные строки Выглядят как обычные строки, за исключением того, что обернуты символами
кавычек `

`строка текста`
`строка текста 1
строка текста 2`
`строка текста ${выражение} строка текста`
tag `строка текста ${выражение} строка текста`

Слайд 18

Многострочные литералы

console.log(`string text line 1
string text line 2`);
//"string text line 1
// string

Многострочные литералы console.log(`string text line 1 string text line 2`); //"string text
text line 2"

Слайд 19

Интерполяция выражений

В строке создаётся конструкция ${...}, внутри которой вы можете поместить любую

Интерполяция выражений В строке создаётся конструкция ${...}, внутри которой вы можете поместить
переменную или выражение.
Cтроки, созданные с помощью обычных кавычек (' и ") не поддерживают интерполяцию. Для поддержки интерполяции следует использовать обратную кавычку ` (клавиша ё на клавиатуре):
С помощью интерполяции в строку можно поместить результат выполнения любого выражения, например, вызов функции

Слайд 20

Интерполяция выражений

let arg1 = 2;
let arg2 = 3;
console.log(`${arg1} + ${arg2} = ${arg1

Интерполяция выражений let arg1 = 2; let arg2 = 3; console.log(`${arg1} +
+ arg2}`);//2 + 3 = 5

Слайд 21

Интерполяция выражений

*Скорее всего, будут возникать ситуации, когда одного уровня интерполяции будет недостаточно.

Интерполяция выражений *Скорее всего, будут возникать ситуации, когда одного уровня интерполяции будет
В подобных случаях удобно пользоваться вложенностью (интерполяция внутри интерполяции). Следует помнить, что весь код, находящийся внутри ${...} интерпретируется, как отдельное выражение, то есть может содержать обратные кавычки, которые не будут восприняты, как конец строки

Слайд 22

Улучшенная поддержка юникода

Используется кодировка UTF-16. На хранение одного символа необходимо 2 байта

Улучшенная поддержка юникода Используется кодировка UTF-16. На хранение одного символа необходимо 2

console.log( '我'.length );//1
console.log( '?'.length );//2
//расширенная поддержка метасимволов, математических символов
//и смайликов
console.log( '?'.length );//2, MATHEMATICAL SCRIPT CAPITAL X
console.log( '?'.length );//2, FACE WITH TEARS OF JOY

Слайд 23

Метод includes

Проверяет, включает ли одна строка str в себя другую строку searchString,

Метод includes Проверяет, включает ли одна строка str в себя другую строку
возвращает true/false

let str = 'To be, or not to be, that is the question.';
console.log(str.includes('To be'));       //true
console.log(str.includes('question'));    //true
console.log(str.includes('nonexistent')); //false
console.log(str.includes('To be', 1));    //false
console.log(str.includes('TO BE'));       //false 

Слайд 24

Метод endsWith

Возвращает true, если строка str заканчивается подстрокой searchString

let str =

Метод endsWith Возвращает true, если строка str заканчивается подстрокой searchString let str
'To be, or not to be, that is the question.';
console.log(str.endsWith('question.'));//true
console.log(str.endsWith('to be'));    //false
console.log(str.endsWith('to be', 19));//true

Слайд 25

Метод startsWith

Возвращает true, если строка str начинается со строки searchString

let str

Метод startsWith Возвращает true, если строка str начинается со строки searchString let
= 'To be, or not to be, that is the question.';
console.log(str.startsWith('To be'));        //true
console.log(str.startsWith('not to be'));    //false
console.log(str.startsWith('not to be', 10));//true

Слайд 26

Метод repeat

Повторяет строку str count раз

'abc'.repeat(-1); //RangeError
'abc'.repeat(0); //''
'abc'.repeat(1); //'abc'
'abc'.repeat(2); //'abcabc'
'abc'.repeat(3.5); //'abcabcabc'

Метод repeat Повторяет строку str count раз 'abc'.repeat(-1); //RangeError 'abc'.repeat(0); //'' 'abc'.repeat(1);
(count will be converted to integer)
'abc'.repeat(1/0); //RangeError

Слайд 27

Объекты

Объекты

Слайд 28

Короткое свойство

При объявлении свойства объекта достаточно указать только его имя, а значение

Короткое свойство При объявлении свойства объекта достаточно указать только его имя, а
будет взято из переменной с аналогичным именем

let name = "Вася";
let isAdmin = true;
let user = {
name,
isAdmin
};
console.log(JSON.stringify(user));//{"name": "Вася", "isAdmin": true}

Слайд 29

Вычисляемые свойства

let propName = "firstName";
let user = {
[propName]: "Вася"
};
console.log(user.firstName);//Вася

Вычисляемые свойства let propName = "firstName"; let user = { [propName]: "Вася" }; console.log(user.firstName);//Вася

Слайд 30

Вычисляемые свойства

let a = "Зелёный ";
let b = "Крокодил";
let user = {

Вычисляемые свойства let a = "Зелёный "; let b = "Крокодил"; let
[(a + b).toLowerCase()]: "Петя"
};
console.log( user["зелёный крокодил"] );//Петя

Слайд 31

Метод setPrototypeOf

Метод устанавливает прототип (внутреннее свойство [[Prototype]]) указанного объекта в другой объект

Метод setPrototypeOf Метод устанавливает прототип (внутреннее свойство [[Prototype]]) указанного объекта в другой
или null

let dict = Object.setPrototypeOf({}, null);                
let person = {
    name: 'unknown'
};
let student = {
    group: 1
};
let p1 = Object.setPrototypeOf(student, person);
console.log(p1.group);//1
console.log(p1.name);//unknown 

Слайд 32

Object.assign

Метод используется для копирования значений всех собственных перечисляемых свойств из одного или

Object.assign Метод используется для копирования значений всех собственных перечисляемых свойств из одного
более объектов в целевой объект

Object.assign(target, src1, src2...)                                   
let o1 = { a: 1 };
let o2 = { b: 2 };
let o3 = { c: 3 };
let obj = Object.assign(o1, o2, o3);
console.log(obj);//{ a: 1, b: 2, c: 3 }
console.log(o1); //{ a: 1, b: 2, c: 3 }
//изменился и целевой объект 

Слайд 33

Object.is

Метод определяет, являются ли два значения одинаковыми

Iet sSame = Object.is(value1, value2);                                           
Object.is('foo',

Object.is Метод определяет, являются ли два значения одинаковыми Iet sSame = Object.is(value1,
'foo');   //true
Object.is(window, window); //true
Object.is('foo', 'bar');   //false
Object.is([], []);         //false
let test = { a: 1 };
Object.is(test, test);     //true
Object.is(null, null);     //true
//Специальные случаи
Object.is(0, -0);          //false
Object.is(-0, -0);         //true
Object.is(NaN, 0/0);       //true
Object.is(NaN, NaN);       //true
Имя файла: Знакомство-с-ES6.-Урок-20.pptx
Количество просмотров: 24
Количество скачиваний: 0