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 ( ), результат буде той же:

Висновок