Тесты TypeOfNaN по JavaScript


Изучите основы JavaScript с помощью веселых и сложных викторин! Эта интерактивная викторина обеспечивает полный практический опыт обучения. В настоящее время в нем 72 вопроса по различным концепциям Javascript, и их количество добавляется.

Эти викторины были составлены Ником Скиалли, который объясняет, что многие из них сложны и погружаются в предметы, которые сбивали его с толку, когда он впервые изучал JavaScript. Самый первый вопрос должен дать вам представление о том, чего ожидать:

Сравнение сортировки массивов

Рассмотрим следующие массивы. Что регистрируется в различных условиях сортировки?

const arr1 = [‘a’, ‘b’, ‘c’]; const arr2 = [‘b’, ‘c’, ‘a’];

console.log (arr1.sort () === arr1, arr2.sort () == arr2, arr1.sort () === arr2.sort ());

За вопросом следует несколько вариантов ответов:

правда правда правда правда правда ложь ложь ложь ложь ложь правда ложь правда

После того, как вы сделаете свой выбор, верный он или нет, вам будет предоставлено объяснение:

Здесь задействовано несколько концепций. Сначала метод сортировки массива сортирует исходный массив, а также возвращает ссылку на этот массив. Это означает, что когда вы пишете arr2.sort (), объект массива arr2 сортируется.

Однако оказывается, что порядок сортировки массива не имеет значения при сравнении объектов. Поскольку arr1.sort () и arr1 указывают на один и тот же объект в памяти, первый тест на равенство возвращает true. Это верно и для второго сравнения: arr2.sort () и arr2 указывают на один и тот же объект в памяти.

В третьем тесте порядок сортировки arr1.sort () и arr2.sort () одинаков; однако они по-прежнему указывают на разные объекты в памяти. Таким образом, третий тест считается ложным.

Вот еще пара:

Прототипное наследование

В этом вопросе у нас есть функция-конструктор Dog. Наша собака явно знает команду речи. Что регистрируется в следующем примере, когда мы просим Пого выступить?

функция Dog (имя) {this.name = name; this.speak = function () {return ‘woof’;}; }

const dog = новая собака (‘Пого’);

Dog.prototype.speak = function () {return ‘arf’;};

console.log (dog.speak ());

Каждый раз, когда мы создаем новый экземпляр Dog, мы устанавливаем свойство speak для этого экземпляра как функцию, возвращающую строку woof. Поскольку это устанавливается каждый раз, когда мы создаем новый экземпляр Dog, мы никогда не используем свойство prototypal speak в Dog, которое возвращает строку arf.

Другие викторины включают:

Заказ Promise.all Resolve

Уменьшить математику

Привязка метода массива

Установить уникальность и порядок

IIFE, HOF или оба

Эффективность преобразования массива в объект

Клонирование объектов (JSON.parse + JSON.stringify) Сравнение

Глобальный Местный

Конструкторы журналов консоли

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

Асинхронный / Ожидание

Кудрявый Q

Точность с плавающей запятой

Уменьшить объект

Вне конкуренции

Обратный вызов setTimeOut

Итерация объекта массива

Операторы равенства и идентичности

это ключевое слово

и так далее.

Как видно из списка, викторина адресована тонкостям языка и охватывает важные и хитрые концепции, которые вам нужно прочно обосновать, чтобы продвигаться дальше с языком. Однако Ник Скиалли предупреждает:

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

Scialla также предлагает тест в качестве самостоятельного варианта, чтобы вы могли адаптировать его к локальной сети (например, корпоративной среде) или даже создать свою собственную в образовательных целях, просто клонировав репозиторий Gitgub.

Наслаждаться!


Добавить комментарий