6. Переменные, константы и ключевые слова

Когда мы будем писать большие программы, то нам часто необходимо будет использовать одно и тоже значение в коде программы. Допустим у нас уже есть написанная нами программа, где то тут, то там мы используем числовое значение 25. И вот внезапно мы понимаем, что надо было использовать не число 25, а, например, 24. Получается теперь нам во многих участках кода где мы писали значение 25, надо изменить на 24. Работа предстоит утомительная. Но чтобы избежать таких ситуаций, в программировании придумали переменные и константы.

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

Итак, продолжаем. Представьте, что оперативная память – это блок депозитных ячеек в банке, где мы можем использовать их, чтобы хранить какие-либо типы данных. С помощью JavaScript, мы можем арендовать любую из этих ячеек, поместить туда значение, например, 25, назвать эту ячейку как нужноеЧисло, и теперь везде в коде мы пишем не число 25, а имя Нужное число. И вот, после того как мы написали код используя переменную, мы поняли, что надо использовать не число 25, а 24. Теперь все очень просто, мы один раз меняем значение переменной на 24, и везде где она использовалась, ее значение меняется на 24.

Думаю вы уже хотите попрактиковаться!

Давайте создадим первую переменную. Чтобы создать переменную нам вначале инструкции надо сообщить транслятору, что мы хотим в этой инструкции создать переменную. Это делается с помощью ключевого слова let.

Ключевых слов в JavaScript достаточно много, здесь представлена только часть из них. Для транслятора ключевые слова имеют специальное назначение, помогая вам создавать более сложные программы, а не использовать транслятор только как калькулятор. Когда мы будем именовать переменную, ее нельзя называть именем ключевого слова, например как let, break и т.д. иначе транслятор выдаст ошибку. Сейчас все эти ключевые слова учить не надо, мы будем на протяжении курса осваивать и применять все новые и новые ключевые слова, и вы их без труда освоите. Кстати, ключевые слова также называют зарезервированными словами.

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

Итак напишем слово let. Когда мы применяем ключевое слово, то транслятор ожидает, что эта инструкция будет построена определенным образом. В случае с ключевым словом let далее мы обязательно должны поставить пробел, затем транслятор ожидает от нас выражение, в котором мы зададим имя для арендованной ячейки, т.е. переменной. Данное выражение пишется очень легко, вы просто указываете имя переменной и все. Выражение, где мы задаем имя переменной называется идентификатором.

Далее ставим точку с запятой и инструкция где мы арендуем ячейку в памяти и задаем ей имя готова. Кстати, при именовании переменой первым символом не должна бить цифра, также в имени не должно содержаться специальных символов, кроме нижнего подчеркивания и знака доллара. Нажимаем Enter.

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

Так как Идентификатор – это выражение, а выражения мы можем писать через запятую, то в одной инструкции мы можем создать несколько переменных.

А как присвоить переменной какое-либо значение? Это можно сделать с помощью операторов присваивания. Как видите, их также не мало как и арифметических операторов, но нас пока интересует самый первый оператор, который так и называется – Присваивание.

В начале пишем имя переменной, (по сути в имени переменной содержится ссылка на значение в оперативной памяти). Данное выражение относится к первичным, т.е. к простейшим, как число, текст, булевское значение и т.д. И если мы нажмем Enter, то транслятор снова вернет нам значение undefined, но теперь значение undefined говорит нам о том, что транслятор не смог найти значение у этой переменной.

Скоро мы об типе данных undefined поговорим, а пока запомните, что когда консоль возвращает undefined, то это значит что консоли просто нечего вернуть.

Снова напишем ссылку на переменную, далее пишем оператор присвоения, и после знака равно пишем любое значение, например, число 25. Ставим точку с запятой. И вот у нас готова инструкция, которая присваивает значение переменной. Эта инструкция состоит из ссылки на переменную, оператора присваивания и литерала, т.е. значения над которым не производится никаких действий. В нашем случае это просто число 25, которая и выступает литералом. Нажимаем Enter. Транслятор вернул нам 25.

В этом случае, когда мы присваиваем какое-то значение переменной, транслятор всегда выводит это значение.

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

Если мы просто напишем имя переменной, то транслятор снова выдаст ее значение. Т.е. число 25.

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

Т.е. здесь транслятор при виде ссылки на переменную, прочитал ее значение, это 25, и прибавил к нему единицу, получилось 26.

При этом значение переменной не поменялось. Так как транслятор только считывает от туда число, но не изменяет его, пока мы это сами не сделаем с помощью операторов присвоения.

Если мы хотим поменять значение переменной, то просто снова, с помощью оператора присвоения зададим ему новое значение.

Но теперь укажем не литерал, а более сложное выражение:

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

Т.е. когда транслятор видит эту строку он сперва возводит число три в степень 2, затем умножает результат на 34 и потом прибавляет 3, а в конце получившееся число присваивает к переменной.

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

Если мы напишем так:

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

Также мы можем создать переменную и сразу задать ей значение. Сперва мы пишем ключевое слово let, затем идентификатор, далее знак ровно и значение.

Когда у нас в инструкции есть ключевое слово, то транслятор ничего не вернет, а если просто выражение, например ссылка на переменную, то транслятор возвращает значение этого выражения, так как результатом выражения всегда есть какое-то значение.

Давайте теперь напишем такое выражение:

И перед нажатием Enter давайте сами подумаем над этой инструкцией как транслятор. Итак у нас два оператора + (точнее строковой оператор конкатенации) и равно. Плюс приоритетней, но чтоб выполнить этот оператор нам надо считать значение в переменной нужноеСлово, а это привет Мир, затем мы склеим это значение с двумя восклицательными знаками, потом присвоим это значение переменной нужное Слово. В результате у переменной нужное слово будет тестовое значение Привет мир с тремя восклицательными знаками.

С переменными думаю, мы разобрались, а что с константами. С константами практически все тоже самое, только теперь вместо ключевого слово let мы должны использовать слово const, записывать значение в константу мы должны в той же инструкции где мы ее объявляем. Т.е. мы не можем написать так:

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

Вернемся к нашей константе.

Мы обязательно должны в инструкции где объявляем константу, также задать ей значение.

И последнее отличие в том, что задав значение константе, далее в коде мы не можем ее менять.

Зачем использовать константы? Принято, если вам нужен какой-то тип данных в программе, который вы не планируете изменять, объявлять его как константу.

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

На этом урок заканчивается, до встречи на следующих уроках.

Домашнее задание

В этом домашнем задании я буду магом-чародеем, который угадает конечное число:)) Итак, создайте в консоли в одной инструкции три константы с именами A, B, С и значениями 2 (для константы А), 8 (для константы B), а для константы С можете придумать абсолютно любое число, кроме нуля.

Затем в следующей инструкции создайте константу D которая будет равно произведению констант C и A.

Далее создайте константу E которая будет равна сумме констант D и B.

Потом создайте константу F, которая будет равна частному констант E и A.

Еще создайте константу G которая будет равна разности констант F и C

Далее узнайте, какое число содержится в константе G, и дайте я угадаю – это число 4!

Если у вас получилось число 4, то вы все правильно сделали, поздравляю!))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *