Q-1: Напишите функцию, которая позволит вам это сделать

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

Q-2: Палиндром

Палиндром - это слово, предложение или другой тип символьной последовательности, которая читается как вперед, так и назад. Например, «гоночная машина» и «Анна» - палиндромы. «Таблица» и «Джон» не являются палиндромами, потому что они читаются по-разному слева направо и справа налево.

Понимание проблемы

Проблема может быть сформулирована следующим образом: для данной строки вернуть true, если строка является палиндромом, и false, если это не так. Используйте пробелы и знаки препинания, чтобы определить, является ли строка палиндромом. Например:

palindrome('racecar')  ===  true
palindrome('table')  ===  false

Рассуждения о проблеме

Эта проблема связана с идеей перевернуть строку. Если обратная строка совпадает с исходной входной строкой, значит, у вас есть палиндром, и ваша функция должна возвращать истину. И наоборот, если обратная строка не совпадает с исходной входной строкой, последняя не является палиндромом, и ожидается, что ваша функция вернет false.

Решение

Вот один из способов решить задачу палиндрома:

Затем переверните входную строку. Вы можете сделать это, превратив строку в массив с помощью метода String .split (), затем применив метод Array .reverse () и, наконец, превратив обратный массив обратно в строку с помощью метода Array .join (). Я связал все эти методы выше, чтобы код выглядел чище.

В-3: FizzBuzz

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

Понимание проблемы

Задача FizzBuzz выглядит примерно так. Напишите функцию, которая выполняет следующие действия:

  • консоль записывает числа от 1 до n, где n - целое число, которое функция принимает в качестве параметра
  • регистрирует газировку вместо числа, кратного 3
  • регистрирует обновления вместо числа, кратного 5
  • регистрирует fizzbuzz для чисел, кратных 3 и 5

Пример:

fizzBuzz(5)

Результат:

// 1
// 2
// fizz
// 4
// buzz

Рассуждения о проблеме

Один важный момент, связанный с FizzBuzz, касается того, как вы можете найти в JavaScript числа, кратные числу. Вы делаете это с помощью оператора по модулю или остатку, который выглядит так: %. Этот оператор возвращает остаток от деления между двумя числами. Остаток от 0 означает, что первое число кратно второму:

12 % 5 // 2 -> 12 is not a multiple of 5
12 % 3 // 0 -> 12 is multiple of 3

Если разделить 12 на 5, получится 2 с остатком 2. Если разделить 12 на 3, получится 4 с остатком 0. В первом примере 12 не делится на 5, а во втором примере 12 делится на 3.

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

Решение

Вот одно из решений, которое вы можете попробовать в задаче FizzBuzz:

1

2

Q-1: Напишите функцию «mul», которая будет правильно при вызове, как показано ниже.

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

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

  • Функция является экземпляром типа Object
  • Функция может иметь свойства и иметь обратную ссылку на свой метод конструктора
  • Функцию можно сохранить как переменную
  • Функцию можно передать как параметр другой функции
  • Функция может быть возвращена из функции

В-5: Реализуйте постановку в очередь и извлечение из очереди, используя только два стека

Поставить в очередь означает добавить элемент, исключить из очереди - удалить элемент.

Q-6: Учитывая строку, переверните каждое слово в предложении

Например, Welcome to this Javascript Guide! должно стать emocleW ot siht tpircsavaJ !ediuG

В-7: Как очистить массив в JavaScript?

Как мы могли очистить массив выше?

Способ 1

Приведенный выше код установит переменную arrayList в новый пустой массив. Это рекомендуется, если у вас нет ссылок на исходный массив arrayList где-либо еще, потому что это фактически создаст новый пустой массив. Вы должны быть осторожны с этим способом очистки массива, потому что, если вы ссылались на этот массив из другой переменной, тогда исходный ссылочный массив останется неизменным. Используйте этот способ только в том случае, если вы ссылались на массив только по его исходной переменной _12 _.

Способ 2

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

Способ 3

Вышеупомянутая реализация также будет работать отлично. Этот способ опустошения массива также обновит все ссылки исходного массива.

Метод 4

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

В-8: Как бы вы использовали закрытие для создания частного счетчика?

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

В-9: Напишите функцию, которая позволила бы вам это сделать.

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

В-10: Объясните, что такое функция обратного вызова, и приведите простой пример.

Функция callback - это функция, которая передается другой функции в качестве аргумента и выполняется после завершения некоторой операции. Ниже приведен пример простой функции обратного вызова, которая записывается в консоль после завершения некоторых операций.