Переменные JavaScript. Работа с JavaScript переменными. Типизация JavaScript переменных. Объявление переменных JavaScript

Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Продолжаем рубрику Заметки по JavaScript, в которой уже были следующие публикации: типы данных JavaScript, числа JavaScript, строки JavaScript, вставка JavaScript в HTML, JavaScript операторы (void JavaScript, delete JavaScript, typeof JavaScript, new JavaScript), преобразование число в строку JavaScript и строку в число JavaScript, логические значения false и true JavaScript, синтаксис JavaScript и лексическая структура JavaScript, специальные значения null JavaScript и undefined JavaScript. Сегодня речь пойдет о JavaScript переменных и работе с JavaScript переменными.

Конкретнее, мы рассмотрим типизацию JavaScript переменных, поговорим о том, как объявлять переменные JavaScript и нужно ли объявлять переменные JavaScript. Для тех, кто еще не знает, что такое переменная я дам самое понятное, на мой взгляд, определение: переменная – это именованное место памяти. Данное определение свидетельствует о двух фактах: переменная всегда должна иметь какое-то имя, и мы можем обратиться к переменной с помощью этого имени.

Переменные JavaScript. Работа с  JavaScript переменными. Типизация JavaScript переменных. Объявление переменных JavaScript.

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


JavaScript переменные.

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

В данном случае можно сказать, что внутри переменной name хранится JavaScript строка или значение John. Со значением, хранящимся в переменной можно произвести какую-либо операцию, например конкатенацию строк:

В данному случае для объявления переменной hello я использовал ключевое слово JavaScript var. Также в примере используется оператор склейки строк JavaScript “+” (конкатенации строк), который нужен для того, чтобы вывести осмысленное приветствие. Собственно, на этом я бы мог остановиться и сказать: в принципе, вышесказанного достаточно для того, чтобы писать программы и использовать JavaScript переменные. Но, чтобы не появлялись вопросы: а почему у меня возникают ошибки, вроде бы все правильно сделал, нужно знать немного больше про JavaScript переменные.

Типизация переменных JavaScript. JavaScript слабо типизированный язык программирования.

Если вы пробовали писать программы на таких языках как C и Java, то знаете, что при объявление переменной указывается тип данных этой переменной и в дальнейшем никак нельзя изменить тип данных, который может храниться в этой переменной.

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

Таким образом, JavaScript переменной можно присвоить какое-либо число, а затем присвоить специальное значение, например null JavaScript:

JavaScript переменная n будет содержать значение, которое ей присвоили последним, в нашем случае переменная n содержит значение null. Таким образом можно сделать вывод, что JavaScript слабо типизированный язык программирования, нетипизируемым его назвать нельзя, поскольку в JavaScript есть типы данных.

Обычно, начинающим разработчика нравятся вольности, которые предоставляет язык JavaScript, ну плюсы тут очевидны: не надо заранее указывать тип данных, который будет храниться в JavaScript переменной, не надо инициализировать и объявлять JavaScript переменную заранее, поскольку это можно сделать в процессе написания кода и интерпретатор сам инициализирует и объявит JavaScript переменную, правда сделает это неявно, еще одним плюсом является то, что JavaScript интерпретатор автоматически преобразует один тип данных JavaScript в другой, по мере надобности. (Например, преобразование число в строку и строку в число JavaScript).

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

Объявление переменных JavaScript. Создание JavaScript переменных. Инициализация переменной JavaScript.

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

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

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

В JavaScript можно объявлять и инициализировать переменные в одну строку:

Если JavaScript переменная объявлена, но ей не присвоено значение(JavaScript переменная создана, но не инициализирована), то она имеет специальное значение undefined, значение undefined будет храниться в JavaScript переменной, пока ей не будет присвоено другое значение.

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

Ключевое слово var можно использовать внутри JavaScript циклов, то есть можно объявлять и инициализировать переменные внутри цикла.

Теперь давайте немного поговорим о инструкции var JavaScript. Инструкция var позволяет объявить JavaScript переменную, причем объявить одну и ту же JavaScript переменную можно несколько раз. Если у вас появится желание прочитать значение, которое хранится в не объявленной JavaScript переменной (не созданной, не существующей), то с генерируется ошибка. Если вы присвоите значение JavaScript переменной (инициализируете переменную), не объявляя ее (не используя инструкцию var), то JavaScript интерпретатор неявно объявит переменную.

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

На этом всё, спасибо за внимание, надеюсь, что был хоть чем-то полезен и до скорых встреч на страницах блога для начинающих вебразработчиков и вебмастеров ZametkiNaPolyah.ru. Не забываем комментировать и делиться с друзьями;)

4 комментария к записи Переменные JavaScript. Работа с JavaScript переменными. Типизация JavaScript переменных. Объявление переменных JavaScript

Марина

Здравствуйте, Кирилл! Еще давно, в школе на уроках информатики мы проходили Pascal, там переменным нужно было указывать тип данных, который в них хранится. Я так поняла, что JavaScript переменным не нужно указывать тип данных, то есть тип данных переменных JavaScript определяется динамически? И вот немного не поняла про ключевое слово var при объявление JavaScript переменных, ключевое слово var нужно или нет?

Кирилл

Здравствуйте, Марина! Вы совершенно правы! Переменным JavaScript при объявлении не нужно указывать тип данных, обычно начинающим этот факт нравится, но тут есть много отрицательных моментов. Теперь насчет ключевого слова var JavaScript. Ключевое слово var при объявление JavaScript переменных следует использовать, это связано с областью видимости JavaScript переменной. Например, вы пишите JavaScript функцию, в которой хотите объявить несколько JavaScript переменных, если вы их объявите и про инициализируете без ключевого слова var, то такие JavaScript переменные будут иметь глобальную область видимости, а JavaScript переменные с глобальной областью видимости значительно усложняют написание программ.

Тимур

Здравствуйте, я так понял, что ключевое слово var — используется для объявления переменной. Если не использовать ключевое слово var, то переменная становится свойством глобального объекта.

Кирилл

Тимур, публикация уже немного устарела и в скором времени будет исправлена. Современный стандарт JavaScript требует постоянного использования ключевого слова var (можете посмотреть документацию и погуглить о том, что такое use strict).

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

Про это всё дело можно не думать и не озадачиваться, если всё время использовать var для объявления переменных.

Текст комментария: