Почему это не необходимость для объявления переменной в JavaScript перед использованием его?

Для обращения строки в соответствии с приведенным выше требованием ниже приведены шаги:

  1. Создайте переменную для хранения обращенной строки, которая называется vReversedString
  2. . над строкой вывод должен быть noitamotuA ssecorP toboR olleH
  3. Разделить перевернутую строку с помощью разделителя пробелов и сохранить в my-list-variable
  4. Цикл через my-list-variable
  5. Обратный каждый элемент через петля. Например, в этом случае первый элемент - это noitamotuA, при обратном обращении вы получите Automation в качестве вывода, сохраните его в системную переменную clipboard или создадите новую переменную для хранения каждого элемента.
  6. Объединить и сохранить в vReversedString = $vReversedString$ $clipboard$

Code snippet for reverse the words in a string

7
задан nyuszika7h 1 February 2011 в 09:47
поделиться

5 ответов

JavaScript был предназначен для очень простых сценариев в браузере. Требование объявлений переменной казалось ненужным.

Конечно, это - ошибка на языке. И производители JavaScript знают это. Они хотели изменить его. Но они не могли. Почему?

Поскольку Microsoft уже перепроектировала JavaScript и создала их дублирующийся JScript с ошибками и так далее. Microsoft наложила вето на любые изменения, даже bugfixes, так как они были непреклонны по отношению к не повреждению anyones сценарии. Таким образом, даже если бы они изменили JavaScript, то JScript в IE остался бы таким же.

Это не серьезное основание. Но это - то, которое мы имеем.

Источник: Я получил свой класс истории JavaScript от Douglas Crockford: "Язык программирования JavaScript", http://video.yahoo.com/watch/111593/1710507 Эта часть истории между 9 и 11 минутами в видео.

13
ответ дан 6 December 2019 в 10:03
поделиться

Серьезные основания? Честно не может думать один, это - одна из нескольких вещей, которые я действительно не люблю о JS.

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

4
ответ дан 6 December 2019 в 10:03
поделиться

Поскольку это - язык сценариев. Дети факта. И именно так это было разработано!

0
ответ дан 6 December 2019 в 10:03
поделиться

Мой вопрос, 'почему позволяется в JavaScript использовать переменную непосредственно, не объявляя это', поскольку большинство языков программирования имеет строгую проверку на этом.

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

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

1
ответ дан 6 December 2019 в 10:03
поделиться

Lua имеет подобную проблему: любая незаявленная переменная глобальна по умолчанию. В списке рассылки это - повторяющаяся тема, спрашивая, почему это не должно быть 'локально по умолчанию'. к сожалению, это представило бы очень противные неоднозначности на языке, таким образом, заключение обычно "глобально, по умолчанию плохо, локален, по умолчанию хуже"

1
ответ дан 6 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: