ECMAScript nedir?


118

Visual Studio'da betik tipimi JavaScript olarak ayarladığımda bu, intellisense'de bir seçenek olarak ortaya çıkıyor.

Hızlı bir Google araması kötü sonuçlarla ortaya çıktı ve beni bunun kullanımının çok popüler olmadığına inandırdı.

  • Bu ne?
  • Onu kullanan var mı? (<script type="text/ecmascript">)
  • Neden?


ECMAScript ve Javascript arasındaki farkı bilmek, ECMAScript'i anlamaya da yardımcı olur.
RBT

Yanıtlar:


169

JavaScript, ECMAScript'in bir alt kümesidir. JavaScript temelde ECMAScript'in özünde yer alır, ancak onun üzerine inşa edilir. ActionScript, JavaScript, JScript gibi dillerin tümü, ECMAScript'i çekirdek olarak kullanır. Bir karşılaştırma olarak, AS / JS / JScript 3 farklı arabadır, ancak hepsi aynı motoru kullanır ... her biri farklı olsa da, her biri için benzersiz kılmak için birkaç değişiklik yapılmıştır.

Tarihçe, Brendan Eich, LiveScript ve daha sonra JavaScript olan Mocha'yı yarattı. Netscape , standartlar geliştiren Ecma International'a JavaScript sundu ve adı ECMA-262 aka ECMAScript olarak değiştirildi.

Brendan Eich'in "JavaScript" inin, ECMAScript'in bir lehçesi olan JavaScript ile aynı olmadığına dikkat etmek önemlidir. O inşa çekirdek JavaScript gelen farklılık tarayıcı satıcıları günümüzde uygulamak ECMAScript'e değiştirildi dili.

http://en.wikipedia.org/wiki/ECMAScript


33
ECMAScript çekirdek ise, bu Javascript'i ECMAScript'in bir alt kümesi yapmaz mı?
Ryan Amos

15
JavaScript (tarihsel olarak) ECMAScript'in sahip olmadığı şeylere sahiptir. JavaScript (tarihsel olarak ECMAScript'in sahip olduğu her şeye sahip olmaya çalışır). Bu nedenle gönderi doğrudur, ECMAScript JavaScript'in bir alt kümesidir. Bununla birlikte, her ikisi de birbirine oldukça yakın tutulur (ActionScript artık gerçekten bir ECMAScript dili olarak kabul edilmese de, kökleri içinde olmasına rağmen o kadar farklılaşmıştır). ES ve JS terimleri neredeyse birbirinin yerine kullanılabilir.
Nathan Duvar

22
"ECMAScript, JavaScript'in bir alt kümesidir" demenin doğru olduğunu düşünmüyorum . Bunun yerine, alıntı yaptığınız Wikipedia makalesi, ECMAScript'in bir standart olduğunu ve JavaScript'in bu standardın (uzantılarla birlikte) iyi bilinen bir uygulaması olduğunu belirtir .
DavidRR

2
Sanırım şunu söylemek ECMAScript is a superset of Javascript
istedin

6
Javascript ECMAScript'i uyguladığından ve bunun üzerine inşa ettiğinden, Javascript'in ECMAScript'in bir üst kümesi için olduğunu söyleyebilirim.
RayLoveless


32

ECMAScript = ES:

  • ECMAScript, komut dosyası dilleri için bir Standarttır.

  • Javascript gibi diller ECMAScript standardına dayanmaktadır.

  • ECMA Standardı, en iyi bilinen JavaScript (Netscape) ve JScript (Microsoft) olmak üzere çeşitli kaynak teknolojilere dayanmaktadır.

  • ECMA, Avrupa Bilgisayar Üreticisi Derneği anlamına gelir


Diğer tarafta:


JavaScript = JS:

  • JavaScript, ECMAScript Standardının en popüler uygulamalarıdır.

  • Javascript'in temel özellikleri ECMAScript standardına dayanmaktadır, ancak Javascript ayrıca ECMA spesifikasyonlarında / standardında olmayan başka ek özelliklere de sahiptir.

  • ActionScript ve JScript, ECMAScript'i uygulayan başka bir dildir.

  • JavaScript, standardizasyon için ECMA'ya gönderildi, ancak Javascript adındaki ticari marka sorunları nedeniyle standart ECMAScript olarak adlandırıldı.

  • Her tarayıcının bir JavaScript yorumlayıcısı vardır.


Bu ödeme hakkında daha fazla ayrıntı için tam cevabım burada JavaScript ve ECMAScript arasındaki fark nedir?


hemen hemen her tarayıcının JavaScript desteği vardır, ancak bağlantılar ve lynx gibi olmayan birçok CLI tarayıcısı vardır, bunların yanında: links2, w3m, elinks ve edbrowse. CLI tarayıcılarının çoğu JS'yi de desteklemez.
Cassio Seffrin

16

ECMA, Avrupa Bilgisayar Üreticisi Derneği anlamına gelir. ECMAScript, betik dili için bir standarttır. Bir betik dilinin sağlaması gereken temel özellikleri ve bu özelliklerin nasıl uygulanması gerektiğini belirtir. Javascript başlangıçta Netscape'te oluşturuldu ve dili standartlaştırmak istediler. Bu nedenle, dili standardizasyon için Avrupa Bilgisayar Üreticisi Derneği'ne (ECMA) sundular. Ancak, Javascript adıyla ticari marka sorunları vardı ve standart bugün de sahip olduğu isim olan ECMAScript olarak adlandırıldı.

Böylece, web tarayıcıları ( <script type="text/ecmascript">) öğesini belirlerken ECMAScript yorumlamasını desteklediğinden, ECMA standardını uygulayan herhangi bir komut dosyası dilini kullanabilirsiniz .


2

ECMA, JavaScript'i standartlaştıran bir organizasyondur. Dili ECMAScript olarak adlandırdılar, ancak "JavaScript" "isim yarışmasını" kazanan terimdi


1

İşte bu konuyla ilgili farklı bir görüş. Az ya da çok deneyimden, hiçbir şeyden alıntı yapamam. Herhangi bir JavaScript doğrulayıcısı ve JavaScript ile çalışan herkes size şunu söyleyecektir:

alert("hello World");

geçerli bir JavaScript. Ben de aynı fikirdeyim.

Ancak, bir ECMAScript doğrulayıcısı muhtemelen size bunun geçerli olmadığını söyleyecektir, çünkü alert (), ECMAScript'in bir parçası değildir, ancak Tarayıcılar için JavaScript'in tipik bir özelliğidir. JavaScript'in yalnızca tarayıcı ortamında, fi window.navigator, window.document, WebSocket, navigator.geolocation'da anlamlı olan birçok özelliği vardır. Hatta bazıları bunun JavaScript'in bir parçası olmadığını, HTML5'in bir parçası olduğunu söyleyebilir, ki bu doğru değildir, çünkü HTML5 yalnızca biçimlendirme dili. Ancak, bu şık yeni özelliklere JavaScript'te uygulanmış olsalar bile genellikle HTML5 adı verilir.

JavaScript, sunucu tarafı komut dosyası için de kullanılabilir. O halde tüm coğrafi konum veya medya apileri bir anlam ifade etmiyor. Dolayısıyla, sunucu tarafı komut dosyası için JavaScript, bu tipik tarayıcı özelliklerine sahip olmayan ECMAScript'e çok daha yakın.

Math nesnesinin (örn. Math.sqrt (9)) ECAMScript'in bir parçası olup olmadığını veya ECMAScript'in gerçekten dilin sözdizimini tanımlayıp tanımlamadığını ve herhangi bir işlevsellik oluşturup oluşturmadığını tam olarak anlayamadım. Ancak bir ECMAScript doğrulayıcısı Math.sqrt (9) 'u geçerli ECMAScript olarak kabul ederken, var test = window.document; ECMA doğrulamasında başarısız oldu.

Aşağıdaki bir JavaScript belgesine bağlantı oluştursa da, bence bu, ECMAScript'in yerleşik özellik kümesidir (nesneler ve işlevler): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Global_Objects

Bu yüzden benim görüşüme göre JavaScript tarayıcılara çok yakından bağlıdır, oysa ECMAScript gerçekten sadece çok temel bir işlevsellik setine sahiptir (eğer varsa).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.