What is ECMAScript and its relation with JavaScript?

European Computer Manufacturers Association(Ecma) is a standards organization for information and communication systems.

ECMAScript is a general-purpose programming language, standardized by Ecma International according to the document ECMA-262. It is a JavaScript standard meant to ensure the interoperability of Web pages across different Web browsers. ECMAScript is commonly used for client-side scripting on the World Wide Web.

ECMAScript is object-based: basic language and host facilities are provided by objects, and an ECMAScript program is a cluster of communicating objects. In ECMAScript, an object is a collection of zero or more properties each with attributes that determine how each property can be used — for example, when the Writable attribute for a property is set to false, any attempt by executed ECMAScript code to assign a different value to the property fails. Properties are containers that hold other objects, primitive values, or functions. A primitive value is a member of one of the following built-in types: Undefined, Null, Boolean, Number, String, and Symbol; an object is a member of the built-in type Object, and a function is a callable object. A function that is associated with an object via a property is called a method.

ECMAScript defines a collection of built-in objects that round out the definition of ECMAScript entities. These built-in objects include the global object; objects that are fundamental to the runtime semantics of the language including Object, Function, Boolean, Symbol, and various Error objects; objects that represent and manipulate numeric values including Math, Number, and Date; the text processing objects String and RegExp; objects that are indexed collections of values including Array and nine different kinds of Typed Arrays whose elements all have a specific numeric data representation; keyed collections including Map and Set objects; objects supporting structured data including the JSON object, ArrayBuffer, and DataView; objects supporting control abstractions including generator functions and Promise objects; and, reflection objects including Proxy and Reflect.

ECMAScript Data Types and Values

Algorithms within this specification manipulate values each of which has an associated type. The possible value types are exactly those defined in this clause. Types are further subclassified into ECMAScript language types and specification types.

Within this specification, the notation “Type(x)” is used as shorthand for “the type of x” where “type” refers to the ECMAScript language and specification types defined in this clause. When the term “empty” is used as if it was naming a value, it is equivalent to saying “no value of any type”.

ES Versions :

ECMAScript 5 :

ES5 is a shortcut for ECMAScript 5. Its also known as JavaScript 5 or ECMAScript 2009. It was released in 2009.

Syncfusion JavaScript (ES5) is a modern UI Controls library that has been built from the ground up to be lightweight, responsive, modular, and touch-friendly. It is written in TypeScript and has no external dependencies. It also includes complete support for Angular, React, Vue, ASP.NET MVC, and ASP.NET Core frameworks.

This Ecma Standard defines the ECMAScript 2015 Language. It is the sixth edition of the ECMAScript Language Specification. Since the publication of the first edition in 1997, ECMAScript has grown to be one of the world’s most widely used general-purpose programming languages. It is best known as the language embedded in web browsers but has also been widely adopted for server and embedded applications. The sixth edition is the most extensive update to ECMAScript since the publication of the first edition in 1997.

For ES5 you have to write function keyword and return, to be used to define the function, like normal general JavaScript language.

Reflect API in ES5:

Full reflection API exposing the runtime-level meta-operations on objects. This is effectively the inverse of the Proxy API and allows making calls corresponding to the same meta-operations as the proxy traps. Especially useful for implementing proxies.

ECMAScript 5 Features:

  • The “use strict” Directive
  • String.trim()
  • Array.isArray()
  • Array.forEach()
  • Array.map()
  • Array.filter()
  • Array.reduce()
  • Array.reduceRight()
  • Array.every()
  • Array.some()
  • Array.indexOf()
  • Array.lastIndexOf()
  • JSON.parse()
  • JSON.stringify()
  • Date.now()
  • Property Getters and Setters
  • New Object Property Methods

ECMAScript 6 :

ECMAScript 6, also known as ES6 and ECMAScript 2015, was the second major revision to JavaScript.

Its class allows the developers to instantiate an object using the new operator, using an arrow function, in case it doesn’t need to use function keyword to define the function, also return keyword can be avoided to fetch the computer value.

All ECMAScript 2015 (ES6) features are split into three groups for shipping, staged, and in-progress features:

  • All shipping features, which V8 considers stable, are turned on by default on Node.js and do NOT require any kind of runtime flag.
  • Staged features, which are almost-completed features that are not considered stable by the V8 team, require a runtime flag: --harmony.
  • In progress, features can be activated individually by their respective harmony flag, although this is highly discouraged unless for testing purposes. Note: these flags are exposed by V8 and will potentially change without any deprecation notice.

New Features in ES6

  • The let Keyword
  • The const keyword
  • JavaScript Arrow Function
  • JavaScript Class
  • JavaScript Promise
  • JavaScript Symbol
  • Default Parameter Values
  • Function Rest Parameter
  • Array.find()
  • Array.findIndex()
  • New Number Properties
  • New Number Methods
  • New Global Method

// in ES5

function square(num) {
return num * num;
}
// in ES6
var square = (num) => {
return num * num;
};
// equivalent way ES6
var square = (num) => num * num;

Object Destructuring in ES5 and ES6 :

var object = { name: "xyz", age: 20, grade: 12, gender: "female" };

// ES5
var name = object.name;
var age = object.age;
var grade = object.grade;
var gender = object.gender;

// ES6
var { name, age, grade, gender } = object;

If you liked my blog you can check out my Medium profile and also check out my website SlashBox.

Thanks for reading.

Programming || Psychology || Physics || Space

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store