JavaScript. Ядро.

Read this article in: English, Japanese, German (version 2), Arabic, French, Chinese.

Данная обзорная лекция является обобщением того, что мы изучили в курсе “Тонкости ECMA-262-3“. Каждый раздел статьи содержит ссылки на соответствующие главы цикла ES3, который вы, в случае желания и интереса, можете рассмотреть подробно, получив более глубокие и детальные описания тем. Continue reading

Тонкости ECMA-262-5. Часть 1. Свойства и дескрипторы свойств

Read this article in: English.

Введение

Эта глава посвященна одной из новых концепций в спецификации ECMA-262-5 — атрибутам свойств и механизму работы с ними, дескрипторам свойств.

Обычно, говоря, что объект имеет какие-то свойства, мы имеем ввиду связь между именем свойства и его значением. Но, как мы знаем из анализа ES3, структура свойства несколько сложнее, чем просто строковое имя. Оно также имеет набор атрибутов — те, которые мы уже обсудили в статьях об ES3, например {ReadOnly}, {DontEnum} и другие. С этой точки зрения свойство само по себе является объектом. Continue reading

Тонкости ECMA-262-3. Часть 8. Стратегия передачи параметров в функцию.

Read this article in: English.

Введение

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

В общем случае данный раздел компьютерной науки называется стратегия оценки, вычисления (evaluation strategy), т.е. свод правил для оценки и определения какого-либо выражения. Стратегия передачи параметров в функцию, является её частным случаем.
Continue reading

Тонкости ECMA-262-3. Часть 7.2. ООП: Реализация в ECMAScript.

Read this article in: English.

Введение

Данная статья является продолжением статьи об объектно-ориентированном программировании в ECMAScript. В первой части мы разбирали общую теорию и проводили параллели с ECMAScript. Перед прочтением текущей части, если есть необходимость, я рекомендую прочесть первую часть, поскольку в этой статьей мы будет активно опираться на пройденную терминологию. Желающие могут найти первую часть здесь: Тонкости ECMA-262-3. Часть 7.1. ООП: Общая теория.
Continue reading

Тонкости ECMA-262-3. Часть 7.1. ООП: Общая теория.

Read this article in: English.

Введение

В данной статье мы рассмотрим ключевые моменты, касающиеся объектно-ориентированного программирования в ECMAScript. Чтобы данный материал не получился “очередным” (ведь подобная тема поднималась уже не раз в различных статьях), больше внимания будет уделено, опять же, теоретическим аспектам, чтобы увидеть эти процессы изнутри. В частности, мы рассмотрим алгоритмы конструирования объектов, увидим, как строятся связи между ними (в том числе, и основная связь – наследование), а также дадим чёткие определения, которыми можно оперировать (что, надеюсь, развеет какие-то терминологические и идеологические сомнения и путаницы, возникающие часто в статьях об ООП в JavaScript). Continue reading

Тонкости ECMA-262-3. Часть 6. Замыкания.

Read this article in: English, Chinese.

Введение

В этой заметке мы поговорим об одной из наиболее обсуждаемых тем, связанных с JavaScript — о замыканиях. Тема, по сути, избита; существует немалое количество статей, посвящённых этой структуре (некоторые из них очень хорошие, например, статья R. Cornford-a, представленная в списке дополнительной литературы), однако мы постараемся разобрать её более с теоретической точки зрения, и посмотрим, как замыкания в ECMAScript устроены изнутри.
Continue reading

Тонкости ECMA-262-3. Часть 5. Функции.

Read this article in: English, Chinese (version 1, version 2).

Введение

В этой заметке мы подробней поговорим об одном из основных видов объектов ECMAScript — о функциях. В частности, рассмотрим различные виды функций, определим, как тот или иной вид влияет на объект переменных контекста и, какое содержание имеет цепь областей видимости контекста, связанного с определённым видом функции. Continue reading

Тонкости ECMA-262-3. Часть 4. Цепь областей видимости.

Read this article in: English, Chinese (version 1, version 2), Korean.

Введение

Как нам уже известно из второй заметки, касающейся объекта переменных, данные контекста исполнения (переменные, декларации функции и формальные параметры функций) хранятся свойствами этого объекта переменных.
Continue reading