Объекты имеют более общую природу: они являются неупорядоченными наборами произвольных значений с доступом по ключу. Иначе говоря, вы обращаетесь к элементам по строковому имени (ключу или свойству) вместо числовой позиции (как в случае с массивами).
Всегда пишите код с использованием средств, эффективно передающих его намерения и идеи. Как правило, это означает использование самой последней стабильной версии JS. Старайтесь не ухудшать удобочитаемость кода, пытаясь вручную заполнять пропуски в синтаксисе/API. Для этого есть программы!
JS является реализацией стандарта ECMAScript (версии 2019 на момент написания книги), который разрабатывается под руководством комитета TC39 и проводится по инициативе ECMA. Он работает в браузерах и других средах JS (например, Node.js).
JS является многопарадигменным языком; это означает, что его синтаксис и возможности позволяют разработчику смешивать концепции (а также сгибать и придавать им новую форму) из разных общепризнанных парадигм, включая процедурное, объектно-ориентированное и функциональное программирование.
JS является компилируемым языком в том смысле, что инструменты (включая ядро JS) обрабатывают и проверяют код программы (выдавая сообщения о любых обнаруженных ошибках) перед ее выполнением.
Разобравшись с определением языка, начнем знакомство с его нюансами и хитростями
Учтите, что даже одиночный символ ; перед директивой строгого режима делает ее бесполезной; никакие ошибки не выдаются, потому что строковый литерал в позиции команды является действительным кодом JS, однако при этом он приведет к незаметному отключению строгого режима
Интересно, что если для файла включен строгий режим, то директивы строгого режима на уровне функций запрещаются. Поэтому нужно выбрать либо одно, либо другое.
Большинство правил строгого режима имеет форму ранних ошибок, т.е. ошибок, которые формально не являются синтаксическими ошибками, но также выдаются во время компиляции (до выполнения кода).
WASM напоминает ASM.js тем, что проект изначально был задуман для того, чтобы предоставить путь преобразования программ, не написанных на JS (например, на C и т.д.), в форму, которая может выполняться в ядре JS. В отличие от ASM.js, создатели WASM решили принять дополнительные меры для преодоления некоторых внутренних задержек, связанных с разбором/компиляцией JS, перед выполнением программы. Для этого программа представлялась в форме, которая не имела ничего общего с JS.
WASM — формат представления, отчасти напоминающий код ассемблера (отсюда название), который может обрабатываться ядром JS. При этом пропускается фаза разбора/компиляции, обычно выполняемая ядром JS. Разбор/компиляция программ, предназначенных для преобразования в формат WASM, выполняется заранее (AOT, Ahead Of Time); при этом распространяется программа в двоичной форме, готовая для выполнения ядром JS с минимальной обработкой.