5 типових JavaScript питань на співбесіді

Питання 1: Можливості
Розглянемо наступний код:
Що буде написано на консолі?
Відповідь
Код напише вище 5.
Хитрість цього питання полягає в тому, що в IIFE є два завдання, але змінна a оголошується ключовим словом var. Це означає, що a є змінною функцією. b ж присвоєно глобальній галузі.
Інший хитрістю цього питання і те, що він використовує строгий режим ('use strict';) у функції. Якщо ввімкнено строгий режим, код покаже помилку “Uncaught ReferenceError: b не визначено”. Пам'ятайте, що жорсткий режим вимагає, щоб ви посилалися на глобальні області. Таким чином, ви повинні написати:
Питання 2: Створення "рідних" методів
Визначте функцію, що повторюється, в рядку об'єкта. Функція має на увазі ціле число, що визначає, скільки разів рядок повинен повторитися. Функція повторює вказаний рядок вказану кількість разів. Наприклад:
Повинно вийти "hellohellohello".
Відповідь
Можлива реалізація показана нижче:
Ще одним важливим моментом є демонстрація знань про те, як не скасувати певні функції. Це робиться шляхом тестування, що підтверджує, що функція не існує самостійно до її визначення.
Питання 3: Підйом
Який результат виконання та чому?
Відповідь
Результати коду – underfined та 2.
Причина в тому, що обидві змінні функції піднято (вміщено у верхній частині функції), але змінні не утримують значення. У той час, коли змінна a друкується, вона існує у функції (це декларується), але вона все ще невизначена. Іншими словами, код вище еквівалентний наступному:
Яким є результат наступного коду? Обґрунтуйте свійвідповідь.
Відповідь
Питання 5: call ( ) та apply ( )
Виправте попереднє питання так, щоб останнім console.log ( ) став Aurelio De Rosa.
Відповідь
Питання може бути змінено, вплинувши контекст функції, використовуючи функції call ( ) чи apply ( ). Якщо ви не знаєте їх та їх відмінностей, вам варто прочитати статтю. У коді нижче я використовуватиму call ( ), але в цьому випадку застосовується apply ( ), результат буде той же:
Висновок