“ attenzione possa costituire iscrizione con JavaScript verrà iscrizione finalmente con JavaScript“, questa lineare trionfo riassume quella è promemoria “Leggi in Atwood“. Formulata oltre a 10 fa ha trovato nel cielo diverse conferme, in questa misura JavaScript ha finalmente out la sua figura audace in frasario client side a lei stretti confini dei browser Web. A tal mira è immaginabile allegare altresì un idea Babel, pensato per forza emendare il manoscritto PHP con JavaScript.
Babel estende la Leggi in Atwood è permette in subset PHP sia corso browser stratagemma NodeJS, l’posto event driven multipiattaforma basato sull’engine V8. Si principalmente in un syntax translator se no maggiore capillarmente in un tanspiler, in un compilatore a motivo di fontanile a fontanile, traduce PHP con manoscritto JavaScript bene leggibile e unito alle specifiche ECMAScript 7.
AST to AST
Alla maniera di sottolineato dal particolare maestro, la operata a motivo di Babel è in specchio AST (Abstract Syntax Tree) to AST, il manoscritto JavaScript in questo modo generato sarà provetto dal opinione sintattico ciononostante potrebbe né andare nello compagno apparenza a ragione delle né poche differenze concettuali esistono per i linguaggi. A dipartirsi a motivo di un fontanile il :
define('FOO', max(floatval($c), strlen("foo")));
$caffè['x'][][$b] = json_encode(__FILE__);
class Foo extends BarBaz {
var $z = "hello" . "world";
function __construct($some = array(7)) {
parent::__construct(func_get_args());
self::${$k} = "{$this->z[10]}";
}
}
verrà frutto per forza norma un output in questo specchio:
const FOO = Math.max(+c, "foo".length);
caffè.x.push({[b]: JSON.stringify(__filename)});
class Foo extends .Baz {
constructor(some = [7]) {
super(arguments);
this.z = "hello" + "world";
this.constructor[k] = `${this.z[10]}`;
}
}
Presso PHP a JavaScript nonostante alcune limitazioni
Babel supporta buona ruolo della sintassi in PHP 7, costrutti funzioni, closures, blocchi try/catch, direttive in revisione e classi (nonostante alcune limitazioni) dovrebbero far sorgere i comportamenti attesi, invece funzioni native strlen()
, array_pop()
e is_bool()
vengono convertite nelle corrispondenti funzioni JavaScript.
Regolarmente dal opinione della trasferta bisogna tenere in considerazione lettera a lei array in PHP prevedono delle feature né possono costituire espresse elementarmente con JavaScript, nello compagno apparenza con PHP NULL
è semanticamente comunicante a undefined
e viene convertito nel caso che si trattasse in un strenuità uguale.
Babel necessita in NodeJS per forza il particolare funzionamento è finalmente inevitabile osservare $_POST[]
né viene rappresentato in questo modo altri costrutti associati ai meccanismi in compenso e replica. ()
, exit()
e altre direttive per forza la uscita dei processi sono conseguentemente considerate inappropriate.
Per analogia ulteriori approfondimenti sulle intolleranza se no le compatibilità parziali è in qualsiasi modo immaginabile formare informazione alla documentazione in Babel è un idea affatto Aperto Source.
Sorgente: Babel