Разные интервьюеры придерживаются разных подходов при проведении собеседований. Некоторые из них могут потребовать от вас решения некоторых проблем с кодированием. Если вы подготовите 10 вещей, которые я обсуждал ниже, вы будете действовать как чемпион (не уверен, что):

01. Перегрузка методов в JavaScript

Перегрузка метода означает возможность создавать несколько функций с одним и тем же именем с разными реализациями. В JavaScript это может быть немного сложно. Ниже мы использовали if else, чтобы выполнять функцию по-разному в зависимости от параметра.

02. Проверьте тип массива.

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

Кстати, в современных браузерах вы также можете использовать

Array.isArray(arrayList)

чтобы проверить, является ли объект массивом.

03. Проверьте, является ли число целым.

В JavaScript вы не получаете целое число как определенный тип. Но есть несколько уловок для проверки целых чисел. Один из наиболее распространенных вариантов использования - Number.parseInt (). Но вы можете легко проверить наличие целочисленного типа, получив остаток после деления числа на 1.

04. Частная переменная

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

Для доступа к переменной потребуется вспомогательная функция.

05. Найди гласные

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

06. Функция внутри оператора if condition

Возможно, вы долгое время использовали условие if в своем коде. Вы также можете познакомиться с ключевым словом eval (?), Которое по какой-то причине не рекомендуется использовать в вашем коде. Но знаете ли вы, что оператор условия If оценивает с помощью eval.. Таким образом, следующий код выведет 1undefined.

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

eval(function f() {}), которые возвращают function f() {}, что истинно, поэтому выполняется код оператора if. typeof f возвращает undefined, потому что если код оператора выполняется во время выполнения, поэтому оператор внутри условия if оценивается во время выполнения. Надеюсь, ты понял. Проверьте исправленный фрагмент ниже:

07. Очистите массив в JavaScript.

Вероятно, самый простой способ очистить массив будет примерно так:

Обратите внимание, что вы очистили массив arrayList, но это не повлияло на массив anotherArrayList, созданный из массива arrayList. Если вы хотите очистить ссылочные и вновь созданные массивы, вы можете следовать приведенным ниже фрагментам:

используя array.length = 0

с помощью сращивания

Вы также можете использовать array.pop (), что не рекомендуется, поэтому я не показываю здесь фрагменты кода по этому поводу.

08. Тест закрытия

Если ваш интервьюер скажет вам написать функцию, которая будет выводить что-то вроде этого:

var addSix = createBase(6);
addSix(10); // returns 16
addSix(21); // returns 27

Не волнуйтесь! Прежде всего проверьте, что функция возвращает результат в addSix после ввода данных (в данном случае 6). Затем мы используем addSix (10) как вызов функции. Итак, вы можете понять, что здесь вам могут понадобиться две функции. Одна функция будет возвращена из другой функции. Итак, удивите его (или, может быть, ее) отрывком ниже:

09. вызов fizzbuzz

Бог! Мне очень нравится это слово. Не как вопрос на собеседовании, а как произнести его. Попытайся! Скажи, шипение, гудение, шипение! Однако, если ваш интервьюер попросит вас создать цикл for, который повторяется до 100, выводя «fizz», кратное 3, «buzz», кратное 5, и «fizzbuzz», кратное 3 и 5. Затем используйте оператор по модулю. (%), чтобы получить остаток и определить, делится ли число на число после этого оператора.

Вывод этой функции намного длиннее, чем мой пост, поэтому я решил показать вам вывод до 18.

10. Сохраняйте неизменность объектов.

Вам предоставлен фрагмент ниже. И вас просят создать объект newHeroes, чтобы исходный объект hero не изменился, который в настоящее время изменяется после создания объекта newHeroes.

Чтобы исправить это, вы можете использовать подход, показанный ниже, используя как Object.assign, так и оператор распространения (закомментированный):

Заключение

Некоторые советы по собеседованию:

  • Потратьте время на подготовку.
  • Практикуйте мышление вслух
  • Разберитесь в проблеме, прежде чем начинать код
  • Практикуйтесь в написании кода вручную

Хорошего дня. Спасибо!