Quelle est la différence entre JavaScript et JScript?


117

Je me suis toujours demandé QUEL EST LE HECK?!? est la différence entre JScript et JavaScript.


Je suis sûr que cela a déjà été signalé, mais IE, vous ne pouvez pas utiliser de constmot clé pour déclarer des variables: const MY_CONSTANT = 10;
dplante le

Réponses:


83

Juste des noms différents pour ce qui est vraiment ECMAScript. John Resig a une bonne explication .

Voici la répartition complète de la version:

  • IE 6-7 prend en charge JScript 5 (qui est équivalent à ECMAScript 3, JavaScript 1.5)
  • IE 8 prend en charge JScript 6 (qui est équivalent à ECMAScript 3, JavaScript 1.5 - plus de corrections de bogues sur JScript 5)
  • Firefox 1.0 prend en charge JavaScript 1.5 (équivalent ECMAScript 3)
  • Firefox 1.5 prend en charge JavaScript 1.6 (1.5 + Array Extras + E4X + divers)
  • Firefox 2.0 prend en charge JavaScript 1.7 (1.6 + Generator + Itterators + let + misc.)
  • Firefox 3.0 prend en charge JavaScript 1.8 (1.7 + Expressions de générateur + Fermetures d'expression + divers)
  • La prochaine version de Firefox prendra en charge JavaScript 1.9 (1.8 + À déterminer)
  • Opera prend en charge un langage équivalent à ECMAScript 3 + Getters and Setters + misc.
  • Safari prend en charge un langage équivalent à ECMAScript 3 + Getters and Setters + misc.

15
C'est faux. JScript prend en charge certaines fonctionnalités de syntaxe non présentes dans JavaScript, notamment f(x) = y. Consultez cette question pour en savoir plus.
Asad Saeeduddin

4
@Malachi, je n'en ai pas besoin. La réponse de Patrick est correcte.
Asad Saeeduddin

38

Pour autant que je sache, deux choses:

  1. Constructeur ActiveXObject
  2. L'idiome f (x) = y, qui équivaut à peu près à f [x] = y.

5
L' f(x) = yidiome me dérange le plus! Pourquoi, oh pourquoi ne sont-ils pas simplement allés avec f[x] = y...
Ates Goral

2
MS avait besoin d'ajouter leur cachet à cette époque. C'est comme ça que vous savez que c'est bon.
cchamberlain

21

De Wikipedia: http://en.wikipedia.org/wiki/Jscript

JScript est le dialecte Microsoft de la spécification du langage de script ECMAScript.

JavaScript (l'implémentation Netscape / Mozilla de la spécification ECMA), JScript et ECMAScript sont des langages très similaires. En fait, le nom «JavaScript» est souvent utilisé pour désigner ECMAScript ou JScript.

Microsoft utilise le nom JScript pour son implémentation afin d'éviter les problèmes de marque ( JavaScript est une marque d' Oracle Corporation ).


7
Cela ne répond pas du tout à la question. La question est: "Quelles sont les différences entre JavaScript et JScript". La bonne réponse est enterrée sous plusieurs réitérations de la même chose.
Asad Saeeduddin

7

JScript est l'implémentation par Microsoft de la spécification ECMAScript. JavaScript est l'implémentation Mozilla de la spécification.


7

Javascript, le langage, est venu en premier de Netscape.

Microsoft a procédé à une ingénierie inverse de Javascript et l'a appelé JScript pour éviter les problèmes de marques avec Sun. (Netscape et Sun étaient partenaires à l'époque, donc c'était moins un problème)

Les langues sont identiques, les deux sont des dialectes du script ECMA, la norme après coup.

Bien que les langages soient identiques, puisque JScript s'exécute dans Internet Explorer, il a accès à différents objets exposés par le navigateur (comme ActiveXObject)


10
Aucune des deux langues n'est vraiment identique, comme indiqué dans un autre article.
EFraim


4

D'après cet article:

  • JavaScript est un langage de script développé par Netscape Communications conçu pour développer des applications Internet client et serveur. Netscape Navigator est conçu pour interpréter le JavaScript intégré dans les pages Web. JavaScript est indépendant du langage Java de Sun Microsystem.

  • Microsoft JScript est une implémentation ouverte du JavaScript de Netscape. JScript est un langage de script hautes performances conçu pour créer du contenu en ligne actif pour le World Wide Web. JScript permet aux développeurs de lier et d'automatiser une grande variété d'objets dans les pages Web, y compris les contrôles ActiveX et les programmes Java. Microsoft Internet Explorer est conçu pour interpréter JScript intégré dans les pages Web.


2
@phrj: c'est la définition Humpty Dumpty de "Open". AFAIK, cela signifie «orthogonal».
Shog9 du

7
Le fait d'appeler JScript "haute performance" à l'époque pré-V8 nous fait comprendre à quel point nous sommes arrivés.
Ray Toal

6
Le deuxième élément de la liste ressemble à du matériel publicitaire - "implémentation ouverte" signifie en fait "vous devez être ouvert d'esprit pour l'accepter", et "haute performance" signifie "destiné à être exécuté sur une machine haute performance".
Camilo Martin le

4

Il y a longtemps, tous les fournisseurs de navigateurs fabriquaient des moteurs JavaScript pour leurs navigateurs et seuls eux et Dieu savaient ce qui se passait à l'intérieur. Un beau jour, ECMA international est venu et a dit: fabriquons des moteurs basés sur une norme commune, faisons quelque chose de général pour rendre la vie plus facile et plus amusante, et ils ont fait cette norme. Étant donné que tous les fournisseurs de navigateurs créent leurs moteurs JavaScript basés sur le noyau ECMAScript (standard).

Par exemple, Google Chrome utilise le moteur V8 et c'est open source. Vous pouvez le télécharger et voir comment le programme C ++ traduit une commande 'print' de JavaScript en code machine.

Internet Explorer utilise le moteur JScript (Chakra) pour leur navigateur et d'autres le font et ils utilisent tous un noyau commun.


2

Wikipedia a ceci à dire sur les différences.

En général, JScript est un langage de script ActiveX qui est probablement interprété comme JavaScript par les navigateurs non-IE.


1

Il y a quelques différences de code à prendre en compte.

Un premier paramètre négatif à subtr n'est pas pris en charge, par exemple en Javascript: "string".substr(-1)renvoie "g", alors qu'en JScript: "string".substr(-1)renvoie "string"

Il est possible de faire "string"[0]pour obtenir des "s" en Javascript, mais JScript ne prend pas en charge une telle construction. (En fait, seuls les navigateurs modernes semblent prendre en charge la "string"[0]construction.


-5

Jscript est un langage .NET similaire à C #, avec les mêmes capacités et un accès à toutes les fonctions .NET.

JavaScript est exécuté sur le serveur ASP Classic. Utilisez Classic ASP pour exécuter le même JavaScript que celui que vous avez sur le client (à l'exclusion des fonctionnalités HTML5). Je n'ai qu'un seul jeu de code de cette façon pour la plupart de mon code.

J'exécute .ASPX JScript lorsque j'ai besoin de fonctions Image et Fichier binaire, (parmi beaucoup d'autres) qui ne sont pas dans ASP classique. Ce code est unique pour le serveur, mais extrêmement puissant.


7
Je pense que vous pensez à JScript.Net
Lankymart

-7

JScript est l'équivalent Microsoft de JavaScript .
Java est un produit Oracle et était autrefois un produit Sun.

Oracle a acheté dim. .

JavaScript + Microsoft = JScript


14
Allez-y doucement sur les audacieux!
Jowen

Pourquoi Java? Vous vouliez dire JavaScript.
Stack0verflow

Une note importante pour tous ceux qui ne le savent peut-être pas: JavaScript et Java ne sont pas la même chose ou ne sont pas liés en aucune façon. JavaScript s'appelait à l'origine LiveScript. Mais renommé en JavaScript pour capitaliser sur la popularité de Java. Partager le nom est l'étendue de ce qu'ils ont en commun en dehors des similitudes avec les langages de syntaxe C comme.
Bacon Brad
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.