Объекты имеют более общую природу: они являются неупорядоченными наборами произвольных значений с доступом по ключу. Иначе говоря, вы обращаетесь к элементам по строковому имени (ключу или свойству) вместо числовой позиции (как в случае с массивами).
Замыкание возникает тогда, когда функция запоминает и продолжает обращаться к переменным, находящимся вне ее области видимости.
Во-первых, замыкание является частью природы функций. У объектов не бывает замыканий, у функций они могут быть. Во-вторых, чтобы наблюдать замыкание, функция должна выполняться не в той области видимости, в которой эта функция была изначально определена.
Протокол автоматически создает экземпляр итератора по итерируемому значению и потребляет только этот экземпляр итератора до его завершения. Это означает, что одно итерируемое значение может потребляться многократно; при этом каждый раз создается и используется новый экземпляр итератора.
Операторы относительного сравнения обычно используют сравнения чисел, кроме того случая, в котором оба сравниваемых значения уже являются строками;
Для сравнения NaN используется специальная функция Number.isNaN(..), которая возвращает правдивый результат.
У оператора === есть некоторые нюансы, и многие разработчики JS забывают о них на свою беду. Оператор === сознательно проектировался так, чтобы возвращал ложную информацию для двух специальных значений: NaN и -0.
Пример:
NaN === NaN; // false
0 === -0; // true
Вернуть можно только одно значение, но если вам потребовалось вернуть несколько значений, их можно упаковать в объект/массив.
функции расширяется до другого взаимосвязанного термина: «процедура». Процедура представляет собой набор команд, который может вызываться один или несколько раз, может получать входные данные и может возвращать одно или несколько значений.
Семантика использования const лучше всего подходит для ситуации, в которой у вас имеется одно примитивное значение, которому вы хотите присвоить полезное имя.