Я узнал сегодня на уроке
"Объектно-ориентированное программирование".
парадигма программирования, основанная на концепции объектов, которые могут содержать данные в виде полей (часто называемых атрибутами или свойствами ) и код в виде процедур (часто называемых методами). Особенностью объектов являются процедуры объекта, которые могут обращаться и часто изменять поля данных объекта, с которым они связаны (у объектов есть понятие это или я).
Можете ли вы предложить вариант использования нового синтаксиса функции стрелки =>
? Чем этот новый синтаксис отличается от других функций?
Выражение стрелочной функции — это синтаксически компактная альтернатива обычному функциональному выражению, хотя и без собственных привязок к ключевым словам this
, arguments
, super
или new.target
. Выражения стрелочных функций плохо подходят в качестве методов, и их нельзя использовать в качестве конструкторов.
Более короткий синтаксис.
Синтаксис ES5 для синтаксиса ES6.
function funcName(params) { return params + 2; }funcName(2); // 4
Объясните разницу в использовании foo
между function foo() {}
и var foo = function() {}
По сути, первая — это фактическая именованная функция. Второй — это обычное объявление переменной с прикрепленной к ней анонимной функцией. Есть некоторые тонкие различия… они хорошо суммированы здесь:
Неоднозначность объявления функции JavaScript
Можете ли вы привести пример деструктуризации объекта или массива?
Назначение деструктурирования ES6 упрощает извлечение этих данных.
Примеры ниже.
var introduction = ["Hello", "I" , "am", "Sarah"];
var greeting = introduction[0];
var name = introduction[3];
console.log(greeting);//"Hello"
console.log(name);//"Sarah"
Если мы хотим извлечь данные с помощью массивов, это довольно просто сделать с помощью деструктурирующего присваивания. Давайте обратимся к нашему первому примеру для массивов. Вместо того, чтобы повторять этот повторяющийся процесс, мы сделаем это.
var introduction = ["Hello", "I" , "am", "Sarah"];
var [greeting, pronoun] = introduction;
console.log(greeting);//"Hello"
console.log(pronoun);//"I"
Мы также можем сделать это с тем же результатом.
var [greeting, pronoun] = ["Hello", "I" , "am", "Sarah"];
console.log(greeting);//"Hello"
console.log(pronoun);//"I"
Объясните Закрытие.
Замыкание — это комбинация функции, связанной (вложенной) со ссылками на ее окружающее состояние (лексическое окружение). Другими словами, замыкание дает вам доступ к области действия внешней функции из внутренней функции. В JavaScript замыкания создаются каждый раз, когда создается функция, во время создания функции.
function init() {
var name = 'Mozilla'; // name is a local variable created by init
function displayName() { // displayName() is the inner function, a closure
alert(name); // use variable declared in the parent function
}
displayName();
}
init();
init()
создает локальную переменную с именем name
и функцию с именем displayName()
. Функция displayName()
— это внутренняя функция, которая определена внутри init()
и доступна только в теле функции init()
. Обратите внимание, что функция displayName()
не имеет собственных локальных переменных. Однако, поскольку внутренние функции имеют доступ к переменным внешних функций, displayName()
может получить доступ к переменной name
, объявленной в родительской функции init()
.