JavaScript. Ядро.

Read this article in: English, German, French, Chinese.

Обратите внимание: доступна обновленная вторая редакция данной статьи.

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

JavaScript. The Core.

Read this article in: German, Russian, French, Polish.

Note: a new 2nd Edition of this article is available.

Note: see also Essentials of Interpretation course, where we build a programming language similar to JavaScript, from scratch.

< ! --start donate block -->

< ! -- end donate block -->

This note is an overview and summary of the “ECMA-262-3 in detail” series. Every section contains references to the appropriate matching chapters so you can read them to get a deeper understanding. Continue reading

ECMA-262-3 in detail. Chapter 8. Evaluation strategy

Read this article in: Russian, French.

Note: this article was revisited and updated on Feb 10th, 2020

< ! --start donate block -->

< ! -- end donate block -->

Introduction

In this small note we will consider strategy of passing arguments to functions in ECMAScript.

In general this part of computer science is known as evaluation strategy, that is, a set of rules for evaluating semantics of some expressions. The strategy of passing arguments to functions is one of its cases. Continue reading

ECMA-262-3 in detail. Chapter 5. Functions.

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

< ! --start donate block -->

< ! -- end donate block -->

Introduction

In this article we will talk about one of the general ECMAScript objects — about functions. In particular, we will go through various types of functions, will define how each type influences variables object of a context and what is contained in the scope chain of each function. Continue reading

ECMA-262-3 in detail. Chapter 4. Scope chain.

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

< ! --start donate block -->

< ! -- end donate block -->

Introduction

As we already know from the second chapter concerning the variable object, the data of an execution context (variables, function declarations, and formal parameters of functions) are stored as properties of the variables object. Continue reading

ECMA-262-3 in detail. Chapter 2. Variable object.

Read this article in: Russian, Chinese (version1, version2, version 3), Korean, German, French.

< ! --start donate block -->

< ! -- end donate block -->

Introduction

Always in programs we declare functions and variables which then successfully use building our systems. But how and where the interpreter finds our data (functions, variable)? What occurs, when we reference to needed objects? Continue reading

ECMA-262-3 in detail. Chapter 3. This.

Read this article in: Russian, Chinese (version1, version2, version 3), Korean, French.

< ! --start donate block -->

< ! -- end donate block -->

Introduction

In this article we will discuss one more detail directly related with execution contexts. The topic of discussion is the this keyword.
Continue reading

ECMA-262-3 in detail. Chapter 7.2. OOP: ECMAScript implementation.

Read this article in: Russian, French.

< ! --start donate block -->

< ! -- end donate block -->

Introduction

This is the second part of article about object-oriented programming in ECMAScript. In the first part we discussed the general theory and drew parallels with ECMAScript. Before reading of the current part, if it is necessary, I recommend reading the first part as in this article we will actively use the passed terminology. You can find the first part here: ECMA-262-3 in detail. Chapter 7.1. OOP: The general theory.
Continue reading

ECMA-262-3 in detail. Chapter 7.1. OOP: The general theory.

Read this article in: Russian, French.

< ! --start donate block -->

< ! -- end donate block -->

Introduction

In this article we consider major aspects of object-oriented programming in ECMAScript. That the article has not turned to “yet another” (as this topic already discussed in many articles), more attention will be given, besides, to theoretical aspects to see these processes from within. In particular, we will consider algorithms of objects creation, see how relationships between objects (including the basic relationship — inheritance) are made, and also give accurate definitions which can be used in discussions (that I hope will dispel some terminological and ideological doubts and messes arising often in articles on OOP in JavaScript). Continue reading