• Как это работает?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Массив всяких строк, которые являются названиями методов некоторых объектов в JavaScript. Но в приведенном фрагменте кода это не имеет никакого значения, т.к. они не выполняются.

    Объявляется анонимная функция, которая тут же и вызывается. В неё параметрами передают этот массив и число 185, записанное в 16-ричной системе как 0xB9.

    Внутри функции объявляется ещё одна функция e(f), ожидающая целочисленный параметр f.

    Цикл while выполняется пока это число f не достигнет нуля, уменьшаясь на 1 на каждой итерации.

    Внутри цикла вызывается метод массива push(), который вставит в конец массива значение. К свойствам и методам объекта можно обращаться и через точку myArray.push() и в квадратных скобках передав строку с названием свойства или метода: myArray['push']()

    Вставляется в массив значение, вынутое из него же, из самого начала. Выдёргивается оно методом массива shift() – записанным так же в виде строки в квадратных скобках.

    Вызывается функция e() с числом 185, увеличенным на 1, т.е. 186. В цикле это число сначала уменьшается на 1, затем оценивается, не стало ли оно равным нулю. Если ещё не стало, то выполняется тело цикла. Т.е. тело цикла выполнится 185 раз: для 185, 184, 183, ... 2 и 1.

    Вся эта конструкция сдвинет содержимое массива на какое-то число позиций, зависящее от его длины.
    Ответ написан
    1 комментарий