Чому немає офіційного посилання на JavaScript? [зачинено]


90

Я намагався шукати посилання на JavaScript, але там немає доступних. Найкращі два запропоновані джерела - MDN (Mozilla Developer Network) та W3Schools.

Чому?


54
Уникайте w3schools; його матеріал JS, як правило, надзвичайно бідний, ІМХО.
NickFitz

1
Вибачте, я мав на увазі MDC; developer.mozilla.org/en/About_JavaScript
huy

9
Це свого роду випадковий коментар, але особисто я вважаю, що всі браузери повинні скасувати всі узагальнення Javascript / Jscript та реалізувати jQuery власноруч. :)
DisgruntledGoat

14
jQuery шпалери над DOM, але насправді не замінює JavaScript.
Роб

2
@huy MDN, а не MDC або MDE
maan81

Відповіді:


63

Не схоже на те, що існує офіційний випуск JavaScript. Усі браузери створили свій власний механізм JavaScript - деякі використовують той самий. Але особливо Internet Explorer має власну версію, яка не підтримує багато з того, що підтримують інші браузери, що ускладнює створення загальних посилань на JavaScript.

Редагувати:
Хоча я знаю, що існує офіційний стандарт ECMA та команда розробників, я хочу сказати, що це насправді не має значення, поки браузери (Internet Explorer) не відповідають цьому. Зрештою, клієнти хочуть, щоб JavaScript працював і для Internet Explorer. Їм буде байдуже про стандарти ECMA, вони просто хочуть, щоб це працювало. Тут з’являються бібліотеки JavaScript, але це вже інша історія.

Це ті самі проблеми з HTML та CSS, ми не можемо використовувати ці інструменти для активної розробки, поки:

  • Усі браузери їх підтримують.
  • Ми постачаємо браузерам код, щоб вони підтримували його.
  • Це нормально, це працює не у всіх браузерах.

Edit2:
Internet Explorer наближається до могили завдяки новому проекту браузера від Microsoft: Edge. Однак це насправді не змінює загальної картини. У нас ще багато, якщо різні браузери нам потрібні для підтримки. Розробники постійно намагаються розсунути межі можливого. Це означає, що ми часто маємо цю проблему, деякі версії браузера, які ми хочемо підтримувати, не підтримують якусь функцію стандарту (яка, як правило, трохи текуча), а це означає, що нам потрібно зробити певний обхідний шлях або використовувати фреймворки, які реалізують відсутні вбудовані в особливостях.


Бачу, так різні браузери мають власну реалізацію відповідно до стандарту ECMA-262, про який Майкл згадав вище?
huy

3
@huy: так - з різним рівнем підтримки / різними інтерпретаціями цього стандарту, на жаль ...
Анджей Дойл

1
-1, Там є офіційним стандартом JavaScript: це називається ECMAscript і є офіційний орган позаду нього: en.wikipedia.org/wiki/Ecma_International
HASEN

Я не впевнений, чому ви виділили Internet Explorer як гірший із підтримкою "стандарту" ECMA, ніж будь-який інший браузер.

5
@ ראובן: Тому що це було / було. Тривалий час IE не тільки мав багато серйозних помилок, яких не мали інші браузери, але він також бракував важливих функцій, які мали інші браузери. Однак IE8 та 9 багато чого наздогнали, тому ситуація змінюється. Але протягом багатьох років IE був жахливим, тоді як інші браузери мали гарну підтримку ECMAScript. Крім того, ECMAScript є стандартом. Я не впевнений, чому ви ставите це в лапки.
Пауан

28

Ви можете спробувати на офіційному сайті ECMAscript,

http://www.ecmascript.org/

але корисною є насправді реалізація кожного браузера.

Мені дуже подобається цей шпаргалка з Біблії на JavaScript Денні Гудмена:

http://media.wiley.com/product_ancillary/12/04705269/DOWNLOAD/9780470526910_Appendix_A.pdf


Ця шпаргалка мертва. Чи можу я запропонувати caniuse.com?
Grinn

Дякую, я зв’язав нове посилання та трохи пояснив, що це було. Дякуємо за голови!
Віктор

Приємно, я це перевірю.
Грінн

22

Я б сказав, що цей "офіційний": https://developer.mozilla.org/en/JavaScript

Ви також маєте специфікацію мови ECMAScript, видання 5.1 (або остаточну специфікацію у форматі PDF ) .

І від Microsoft: Довідник мови JavaScript : "Ця документація пояснює реалізацію Microsoft JavaScript , який відповідає специфікації мови ECMAScript 5th Edition . Він також надає додаткові функції, які не входять до стандартів Ecma."


8
IE не має механізму JavaScript - він замість цього реалізує JScript (який в основному сумісний). msdn.microsoft.com/en-us/library/yek4tbz0%28VS.85%29.aspx виглядає як офіційне посилання на це.
Квентін

3
Хм ... developer.mozilla дуже корисний, але я б не називав це "офіційним". Специфікація мови ECMAScript ближче до "офіційної".
Стів Гаррісон,

4
Специфікація мови ECMAScript є офіційним посиланням на ECMAScript. JavaScript - надмножина ECMAScript, створена Netscape, і Mozilla успадкувала MDC від Netscape (хоча назва з тих пір змінилася)
Квентін

+1 для стандарту ECMAScript.
Джейсон С.

@Quentin - Цікаво, що заголовок посилання MSDN, на яке ви посилаєтесь, тепер "Довідник JavaScript" . Однак у статті MSDN "JScript (ECMAScript3)" зазначено: "JScript - це реалізація Microsoft специфікації мови ECMA 262 (ECMAScript Edition 3). За лише невеликими винятками (для підтримки зворотної сумісності), JScript є повною реалізацією стандарт ECMA ". .
ДевідРР

8

Якщо ви використовуєте ECMAScript для Інтернету (а це 99,9% людей), то, крім базової синтаксики мови (описаної у специфікації ECMA-262, згаданій вище), ви, напевно, шукаєте посилання на DOM - що є API ECMAScript, який використовується для взаємодії з веб-документами.

Я дуже здивований, що ніхто не згадував про DOM api sofar. Поточний стандарт W3C DOM знаходиться тут: http://www.w3.org/TR/DOM-Level-2-Core/

(до речі, щодо плутанини імен - ECMAScript - це назва офіційного стандарту, а "Javascript" та "JScript" - це власні "форки" Netscape та Microsoft)


3

Є офіційне посилання, воно просто не в дуже зручному форматі. Це специфікація ECMA-262 . Це єдиний, дуже великий PDF-документ, замість набору HTML-сторінок для пошуку.


3

Будь-які зміни сторінок JavaScript на MDC , здійснені членом команди документації Mozilla (наприклад, Еріком Шефердом ), є офіційними. JavaScript офіційно підтримується Mozilla, тому офіційною є лише документація Mozilla. На даний момент єдиними движками, які підтримують JavaScript, є Mozilla, а кожен інший механізм реалізує ECMAScript. JavaScript та ECMAScript мають досить багато відмінностей (наприклад, чудове letтвердження).


3

Дуже важко мати "офіційне" посилання, доки існують реалізації (у всіх браузерах) і існує специфікація (ECMAScript), але не проводиться перевірка відповідності реалізацій специфікаціям.

Зараз ми маємо пакет відповідності EMCAScript 5 за адресою http://es5conform.codeplex.com/ - і існує певний консенсус щодо того, що реалізації ECMAScript стануть ближчими, що робить ECMAScript з більшою ймовірністю офіційним посиланням на цю мову.


2

Я знаходжу старі шкільні документи Netscape 4 JavaScript для цього дуже корисні . Хоча вони, очевидно, абсолютно застарілі, і деякі функції DOM у них, такі як Шари, вже давно зникли, для мовних основ вони дійсно тверді.

Це тому , що до днів IE переваги і стандартизації ECMA, JavaScript Netscape був остаточний JavaScript. Іншим браузерам майже доводилося реалізовувати саме те, що ви бачите у цих старих документах.

Їх також набагато легше читати, ніж документ ECMA-262, що навіть за стандартами стандартних документів є абсолютним жахом.


1

Цитата Вікіпедії:

Початки в Netscape

У листопаді 1996 р. Netscape подав JavaScript до Ecma International ...

JavaScript офіційно управляється Фондом Mozilla ...

Отже, на мій погляд, ECMA є стандартом, а Mozilla - офіційним.


0

Під “офіційним”, я думаю, ви маєте на увазі “написане людьми, відповідальними за JavaScript”.

Просто спекулюю тут, але люди, відповідальні за JavaScript (ECMA), безпосередньо не заробляють на цьому гроші і, мабуть, не мають особливих навичок у написанні довідкової документації. Тому вони не мають ні стимулу, ні можливості написати хорошу довідку.

Особисто мені подобається JavaScript: остаточний посібник від О'Рейлі. У листопаді виходить шосте видання.


2
Так, вони є. Sun володіє товарним знаком для JavaScript, але надав йому ліцензію Netscape. Oracle придбав Sun, тож тепер Oracle володіє торговою маркою (вони все ще мають ліцензію на Mozilla). HTML та CSS визначаються W3C, тож це інша справа. Механізм JS у Firefox містить багато власних (і чудових) функцій, яких немає в жодному іншому браузері. Творець JavaScript (Брендан Ейх) входить до офіційного комітету ECMAScript, а також працює в Mozilla.
Пауан,

1
Окрім того, зверніть увагу на це посилання: en.wikipedia.org/wiki/ECMAScript#Dialects Firefox має так званий "JavaScript 1.8.5", який, як уже зазначалося, містить безліч розширених функцій, яких немає в інших браузерах, таких як деструктуризація об'єктів / масивів / розуміння , генератори / ітератори, дозвольте блоки / оператори тощо. Також зверніть увагу на 2-ю виноску в цьому посиланні, в якій сказано: "Mozilla керує офіційною версією JavaScript. Більшість реалізацій, не пов'язаних з Mozilla, що заявляють про відповідність JavaScript", насправді не підтримують більшість розширень JavaScript; швидше, вони націлені на ECMA-262, видання 3. "
Пауан,

1
Зазначу, що ECMAScript відрізняється від JavaScript. ECMAScript - це стандарт, визначений Ecma. Зазвичай браузери досить добре підтримують стандарт ECMAScript, і коли більшість людей кажуть "JavaScript", вони насправді мають на увазі ECMAScript. Шкода, що ситуація та термінологія настільки заплутані, але вона є. Отже, здебільшого неформальне визначення JavaScript - це «все, що роблять браузери», але офіційно за це відповідає Mozilla.
Пауан,

1
Це означає, що будь-яке питання, яке вимагає "офіційного посилання на JavaScript", є занадто розмитим, щоб дати точну відповідь. У вас є офіційний стандарт ECMAScript, фактичні реалізації JavaScript у браузерах, MDC (який охоплює офіційну реалізацію JavaScript у Firefox), і, звичайно, дуже популярна неофіційна документація, така як w3schools. Усі корисні, тому насправді немає жодного "єдиного правильного" посилання, як, скажімо, для Python.
Пауан,

2
(можливо, я повинен був розмістити це як фактичну відповідь, а не як серію коментарів ... ну добре)
Поуан

-1

Мені дуже подобається apidoc Даніеля Крука , хоча він міг би використати деякі пояснення та приклади. Я б дуже хотів побачити круш w3school mashup.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.