Почему JavaScript резервирует ключевые слова Java? - PullRequest
5 голосов
/ 31 января 2011

Как вы знаете, в JavaScript зарезервированы все ключевые слова Java.Кто-нибудь знает почему?JavaScript не рекомендует использовать эти ключевые слова Java, но они работают нормально, когда используются в качестве идентификаторов.

Ответы [ 4 ]

4 голосов
/ 31 января 2011

Ну, на самом деле это не ключевые слова Java, поскольку Javascript не имеет ничего общего с Java, кроме заимствования имени.

Имена были зарезервированы на случай, если они понадобятся в будущих расширениях языка.Из Спецификации языка ECMAScript :

"Следующие слова используются в качестве ключевых слов в предлагаемых расширениях и поэтому зарезервированы для обеспечения возможности последующего принятия этих расширений ..."

4 голосов
/ 31 января 2011

Дело в том, что когда они разрабатывали JavaScript (я думаю, что первоначально он назывался Oak (очевидно, я перепутал языки с предыдущим утверждением о том, что его оригинальное имя неверно)), Netscape заключил партнерское соглашение с Sun для его разработки.Чтобы соблазнить сообщество Java, они хотели сделать JavaScript похожим на Java, чтобы Java-разработчики чувствовали себя более комфортно с ним, и именно поэтому они так похожи.

Что нужно помнить о разработке языка, так это то, что вы действительно можете только один раз определить ключевые слова, не имея новой версии языка, нарушающей существующий код.Гораздо проще зарезервировать слово в начале и не использовать его, чем пытаться зарезервировать его позже.Это особенно верно для таких вещей, как JavaScript, где человек, разрабатывающий скрипт, не может контролировать, в каком браузере он будет работать (теперь это известно, я знаю, но это может быть намного хуже).Не могли бы вы представить, как было бы смешно узнать, что следующая версия JavaScript, принятая новым браузером, неожиданно не запустит ваше приложение, потому что они зарезервировали новое ключевое слово?

3 голосов
/ 31 января 2011

Предположительно разработчики JavaScript предположили, что эти слова могут быть использованы для дополнительной функциональности в будущем выпуске JavaScript.Чтобы предотвратить проблемы обратной совместимости, эти слова были предварительно помечены как зарезервированные.

3 голосов
/ 31 января 2011

Вероятно, чтобы избежать возможной путаницы, которую может вызвать использование этих ключевых слов в качестве имен переменных.

Я имею в виду, просто представьте себе разработчика Java, пытающегося выяснить кусок кода JavaScript с переменной или функцией с именем public.

Даже когда это возможно, я бы посоветовал против этого, для ясности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...