2014-11-13 17 views
9

Così ho appena scoperto oggi che angolare 2,0 sta venendo fuori, stanno usando ECMAScript 6, ma compilarlo a 5, ecc, ecc, eccAngularJS 2.0 riscritto in ECMAScript?

Come intende che (usando ECMAScript) influenzano l'uso? Come sarà compatibile con lo JavaScript che uso per chiamare la sua API? Voglio dire, avere lingue diverse (ES, JS) scritte insieme?

Confuso su come funziona. L'aiuto è apprezzato

EDIT

spiacenti @Joseph se la mia domanda non era abbastanza chiaro, ma ho anche (soprattutto) vuole sapere come ECMAScript 5 viene eseguito nel browser e il secondo paragrafo di cui sopra tenendo questo in contesto.

In che modo una persona JavaScript utilizza Angular 2.0? Come funziona ES accanto al codice JS?

Dal docs:

Anche se angolare sarà in ES6, si può ancora scrivere in ES5 se non si desidera eseguire l'aggiornamento. Il compilatore genera JS leggibile e ci sono degli analoghi sensibili agli umani per le estensioni.

Ho il sospetto che ES può essere eseguito da interpreti JS (?)

risposta

14

AngularJS 2.0 riscritto in ECMAScript?

Sembra che tu abbia sbagliato ES per un'altra lingua.

ES (ECMAScript) è uno standard su cui si basa il linguaggio JavaScript. Definisce le regole e i comportamenti di JS e di altri linguaggi basati su di esso. ES5 è la quinta revisione, ES6 è la revisione imminente al momento della scrittura.

stanno usando ECMAScript 6, ma compilarlo a 5

Praticamente every browser today is ES5 compatible mentre not so with ES6. Esistono incentivi all'utilizzo di ES6 come la nuova API e sintassi molto comoda, ma questi non sono presenti in ES5. Al fine di poter essere in grado di utilizzare ES6 in questo momento, ma ancora, uno ha bisogno del codice ES6 transpiled a ES5.

Ciò significa che Angular è scritto nella sintassi ES6, ma il codice è transpiled (convertito) di nuovo in un equivalente ES5 per consentire ai browser attuali di eseguirlo.

Ecco un esempio del codice facendo la stessa cosa, uno scritto in ES6 e l'altro in ES5 generato da un transpiler. Si noti la convenienza della versione ES6 rispetto a come l'avremmo eseguita in ES5.

// ES6 
var seattlers = [for (c of customers) if (c.city == "Seattle") { name: c.name, age: c.age }]; 

// ES5 
var seattlers = customers.filter(function (c) { 
    return c.city == "Seattle"; 
}).map(function (c) { 
    return { 
    name: c.name, 
    age: c.age 
    }; 
}); 

Come potrò avere dei problemi l'uso?

Come sarà compatibile con il codice JavaScript che uso per chiamare la sua API?

con lingue diverse scritti insieme

Loro (angolare) ha scritto nella prossima versione, poi riconvertirlo alla versione attuale che può essere eseguito su browser attuali. Nessun ulteriore sforzo per la parte consumer. Probabilmente questa mossa avrebbe reso il codice "lungimirante", preparando il codice base per la versione futura oggi.

+0

+1 grazie, ma vedere le mie modifiche – jasonszhao

+2

@jasonszhao Ahh, sembra che tu abbia sbagliato ES per un'altra lingua. [ES (ECMAScript)] (https://en.wikipedia.org/wiki/ECMAScript) è uno standard, non una lingua. JS è basato sullo standard ES. ES5 è la quinta revisione, ES6 è la revisione imminente. Scrivere in ES6 significa che il loro codebase è forward-looking, scritto sulla nuova sintassi. Il passaggio di nuovo a ES5 significa che possono eseguire quel codice sui browser attuali usando un equivalente ES5 del codice ES6 che hanno scritto. Naturalmente, questo è tutto in JavaScript. – Joseph

+0

Più uno solo per il delizioso codice di esempio. Mi rende eccitato per ES6 –