Рынок труда для инженеров-программистов очень конкурентен, и получение работы может зависеть от того, насколько хорошо вы пройдёте собеседование. В этой серии статей Справочник по собеседованию для инженера-программиста мы предоставим некоторые полезные знания, которые помогут вам подготовиться к следующему собеседованию по разработке программного обеспечения. В сегодняшней статье мы рассмотрим основы JavaScript. Давай начнем!

Подъем

При выполнении кода объявления как переменных, так и функций перемещаются в начало кода, что делает порядок, в котором они написаны, неактуальным. Это означает, что функции можно вызывать до их объявления.

Переменные

var a;     // Regular.
let c;     // Block scoped.
const b;   // Immutable.

Функции

Функции в JavaScript считаются объектами первого класса, что означает, что они обрабатываются как обычные объекты функционального типа. Их можно создать с помощью встроенного конструктора функций, и существует несколько способов их объявления.

Способ объявления функции может повлиять на то, как она взаимодействует с внешними компонентами, такими как окружающий контекст или объект, которому принадлежит метод, а также на тип вызова, будь то обычный вызов функции, вызов метода или вызов метода. вызов конструктора.

Объявление функции

Функции, объявленные с помощью подъема, доступны сразу после синтаксического анализа, даже до того, как будет выполнен какой-либо код. Объявление функции создает переменную в текущей области, которая равна имени функции, и эта переменная содержит объект функции.

function foo() {}
foo();

Используйте его, когда выражение функции не подходит или когда важно, чтобы функция была поднята.

Выражение функции

Не поднимается, доступно только после выполнения присваивания переменной.

// Named
let bar = function foo() {};
bar();
foo(); // undefined

Используйте его, когда вы выполняете рекурсию или хотите увидеть имя функции в отладчике.

// Anonymous
let foo = function () {};
foo();

let bar = foo();
bar(); // Error: not a function.

Используйте его, когда хотите передать функцию в качестве аргумента другой функции или хотите сформировать замыкание.

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

Связывает это автоматически.

let foo = () => {};

Используйте это, если вы хотите лексически связать значение this.

Конструктор функций (избегайте этого)

let foo = new Function();

Другой

  • Используйте генераторы объявлений функций function* foo(){}, когда вы хотите выйти из функции, а затем снова войти в нее.
  • Используйте генераторы функциональных выражений let foo = function* [name](){}, если вы хотите выйти из вложенной функции, а затем снова войти в нее.

Параметры функции и аргументы

Аргумент — это значение, передаваемое параметру.

function foo(bar) {
    // bar is a parameter
    console.log(bar);
}
foo("baz"); // baz is an argument.

Хорошо знать

Правда / Ложь

Строки, содержащие хотя бы одну букву и числа больше нуля, равны truthy.

console.log(true && "foo"); // foo
console.log(true && "foo" && 1); // 1

Заключение (TL;DR)

В заключение, подъем — это функция JavaScript, которая перемещает объявления переменных и функций в начало кода, делая их порядок нерелевантным. Это позволяет вызывать функции до их объявления.

Переменные также могут быть объявлены по-разному, например, с использованием ключевых слов var, let или const.

Функции в JavaScript считаются объектами первого класса и могут быть созданы с помощью встроенного конструктора функций. Способ объявления функции может повлиять на ее взаимодействие с внешними компонентами и тип вызова.

Кроме того, существуют различные типы объявлений функций, такие как объявления функций, выражения функций, стрелочные функции ES6 и конструкторы функций, каждый из которых имеет свои уникальные характеристики и варианты использования.

Параметры и аргументы функции также имеют разные значения, при этом аргумент представляет собой значение, переданное параметру. Также важно отметить, что в JavaScript некоторые значения считаются истинными или ложными, например строки, содержащие хотя бы одну букву и числа больше нуля.

В следующей части мы рассмотрим JavaScript ES6. Следите за обновлениями!

Заключительные слова

Спасибо, что нашли время прочитать эту статью. Если вы нашли это информативным и полезным, пожалуйста, поддержите меня, подписавшись на мою страницу и похлопав ее. Ваше участие побудит меня продолжать создавать для вас ценный контент.

Чтобы перейти на новый уровень, подумайте о том, чтобы стать участником Medium всего за 5 долларов США в месяц. С моей реферальной ссылкой вы получите доступ к огромному количеству знаний от тысяч писателей и присоединитесь к сообществу лидеров мнений. Улучшите свои навыки чтения и письма уже сегодня.