ECMAScript 4: une version qui n'existait pas

Nous invitons les futurs étudiants du cours "Javascript Developer. Basic" à visiter la journée de démonstration , au cours de laquelle vous pourrez en savoir plus sur le processus d'apprentissage et le programme du cours, ainsi que poser des questions à nos experts .

En attendant, nous avons préparé une traduction traditionnelle d'un article intéressant.


Vous avez peut-être remarqué que les systèmes de construction utilisent les spécifications ECMAScript 3, puis ECMAScript 5, et ainsi de suite. ECMAScript 4 n'est jamais utilisé. Pourquoi?

J'ai pensé qu'il serait intéressant d'étudier l'histoire d'ECMAScript 4 et de découvrir ce qui nous manquait.

Histoire courte

Selon Wikipedia , la première version d'ECMAScript 4 est apparue en février 1999. La spécification devait être achevée en août 2008.

ECMAScript 4 était un développement prometteur, avec de nombreuses nouvelles fonctionnalités qui manquaient cruellement dans ECMAScript 3. Dans la quatrième édition, certaines lacunes d'ECMAScript 3 ont été corrigées, et donc ES4 était incompatible avec les versions précédentes.

ES4 , , ES4 .

2008 ES4 , ES3.1 ES5. , ECMAScript.

, ES4 ActionScript 3 Flash-. AS3 , Flash .

auth0 ES4 . .

?

- ES6, , .

class C {

 var val
 var number = 500;

 const pi = 3.14

 // A function
 function f(n) { return n+val*2 }

 // Getters and setters
 function set foo(n) {
   val = n;
 }

 function get foo() {
   return val;
 }
}

, . «», .

, this. , ES4 , .

ES4 :

  1. static

  2. final

  3. private, protected, public.

  4. prototype — . , , , , - .

ES4 . , Typescript.

interface MyInterface {
  function foo();
}

ES4 .

function add(a: int, b:int): int {
  return a + b;
}

type, Typescript. Typescript :

let a : number | string;

ES4 :

var a: (number, string)

ES4 :

class Wrapper<T> {
  inner: T
}

Like 

ES4 , . like .

function getCell(coords: like { x: int, y: int }) {

}

, ES4 , , , Typescript.

ES boolean, object, array, number, BigInt. ES4 :

  1. byte

  2. int

  3. unit

  4. double

  5. decimal

ES decimal, , , :

const allowance = 1.50m

ES4 m, (money).

Hello my name is "Evert" ES4 :

const hi = """Hello my name is "Evert"""";

. , , ES6, .

:

package com.evertpot {

  // Private
  internal const foo = 5;

  class MyClass {

  }

}

:

const myObj = com.evertpot.MyClass;

:

import * from com.evertpot;
const myObj = MyClass;

, .

(generic)

. « » Typescript, .

class Foo {


  generic function addItem(x);

  function addItem(x: int) {
  }

  function addItem(x: number) {
  }

}

addItem  — int number. .

E4X

E4X — ES4, .

E4X ECMAScript XML. , , :

const myClass = 'welcome';
const name = 'Evert';
const foo = <div class={myClass}>{"Hello " + name }</div>;

?

, , JSX, , JSX.

ES4 , E4X Firefox .

  • let const . ES5 (const) .

  • (yield).

  • .

  • , ( XML), .

?

ECMAScript 4 , , ES4:

<script type="text/javascript;version=4" src="..."></script>

:

<script type="module" src="..."></script>

, , JavaScript. ECMAScript: , Typescript JSX, — ECMAScript, 2007 .

, ES4 , Babel, Webpack Typescript.


"Javascript Developer. Basic".

.


:




All Articles