Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
rassen
7 лет назад

Стать программистом. Часть 10. Основы JavaScript для абсолютных новичков!

Доброго времени суток, друзья!

В прошлом уроке мы с Вами рассмотрели случаи взаимодействия переменных с типами String(Строка), Number (Число) и Boolean (Логический тип). Кроме этого мы познакомились с результатами взаимодействия этих переменных со специфическими значениями типа Null и Undefined. А так же мы получили новые знания о комментариях в коде, их назначении и форме представления.

По сути нам осталось разобрать:

  1. Неявное преобразование типов при взаимодействии переменных строкового (String) типа со специфическими значениями: Null и Undefined.
  2. Неявное преобразование типов при взаимодействии переменных числового (Number) типа со специфическими значениями: Null и Undefined. А так же...
  3. Неявное преобразование типов при взаимодействии специфических типов Null и Undefined между друг другом.

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

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

А пока я предлагаю двигаться дальше и посмотреть какие же еще манипуляции с переменными мы можем осуществлять в JavaScript.

УРОК 10. Другие возможные взаимодействия между переменными.

До сих пор мы рассматривали взаимодействия между переменными в арифметическом аспекте, то есть в разрезе операций сложения, умножения, деления и вычитания. Однако, если бы JavaScript предоставлял нам возможным выполнения только такого рода операций мы бы далеко не ушли. Ну можем мы складывать разные значения переменных или переменных с разными типами ну и что? Это было бы чуть лучше, чем калькулятор. Однако JavaScript, как уже упоминалось в предыдущих уроках - достаточно гибкий язык программирования и предоставляет нам возможности в разы больше, чем просто арифметика. Давайте их рассмотрим.

И первой операцией из этого списка будет операция конкатенации.

(String concatenation) Конкатенация.

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

Для выполнения конкатенации требуется ровно одно условие - все участники этой операции должны быть строками (тип String), либо должны быть превращены в строки путем явного (который мы еще не рассмотрели) или неявного (который мы рассматривали последние три урока)
преобразования типов.

Пример:

var a = 'всем ';
var b = ' голосовчанам ';
var c = ' огромный ';
var d = ' привет';

var e = a + b + c + d;

alert(e);

Сообщение в браузере:

Результатом данной операции будет строка, соединившая в себе все строки участвующие в операции. Думаю, здесь более, чем все просто и понятно. Идем далее.

Операции Increment (Увеличение)/decrement (Понижение).

Это очень интересные и что более важно часто используемые операции. В своём кодовом представлении имеют вид ++ для increment и -- для decrement.
В чем же суть? Значение переменной может увеличиваться или уменьшаться на один. Рассмотрим на практике:

var a = 1;
var b = '2';
var c = null;
var d = true;

// increment (увеличение)
a++;
b++;
c++;
d++;

alert(a);
alert(b);
alert(c);
alert(d);

Давайте разбираться, что здесь происходит. Мы создали четыре переменных с разными типами:
a - Number, b - String, d - Boolean и переменную c со специфическим значением Null. Ко всем четырем переменным применена операция инкремента, то есть увеличения их значения на единицу.
Вот эта часть на строках 7,8,9,10:

// increment (увеличение)
a++;
b++;
c++;
d++;

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

Итак, инкремент — это увеличение текущего значения переменной на единицу. Давайте проведем эти вычисления, в этом нам помогут наши знания неявного преобразования типа переменных в JavaScript. Важно понимать, что, когда к какой-либо переменной применяется инкремент или декремент, JavaScript всегда будет неявно преобразовывать эту переменную в число (Number). Конечно, за исключением случая, когда инкремент или декремент применяется к переменной, которая уже имеет тип Number.

Вооруженные такой теорией мы можем сделать следующие выводы:

  1. Переменная var a = 1; после операции a++; при увеличении на 1 получит в свое значение результат 2.
  2. Переменная var b = '2';. Переменная строкового типа. Однако, с цифирным значением. Значит JavaScript в своем неявном преобразовании этой переменной к числу даст ей значение 2. И после операции b++; увеличит это преобразованное значение на 1. Получаем 3.
  3. Переменная var c = null;. В соответствии с уже известной нами ассоциацией будет преобразована JavaScript'ом в 0. И после операции b++; увеличит это преобразованное значение на 1. Получаем 1.
  4. Переменная var d = true;. Переменная логического типа. Опять же, в соответствии с уже известной нами ассоциацией будет преобразована JavaScript'ом в 1. И после операции d++; увеличит это преобразованное значение на 1. Получаем 2.

Таким образом, мы получили результаты: 2, 3, 1 и 2. Давайте проверим в браузере:

Как можно видеть из сообщений - выводы и логика, приведенная выше, абсолютно верна. Точно такая же логика преобразования переменных и результатов применяется к операциям связанных с операцией decrement (уменьшения). Давайте рассмотрим пример:

var a = 1;
var b = '2';
var c = null;
var d = true;

// decrement (уменьшение)
a--;
b--;
c--;
d--;

alert(a);
alert(b);
alert(c);
alert(d);

И выведем сообщения с результатами в браузере:

Попробуйте, обосновать результаты, приведенные в сообщениях используя логику преобразования переменных, описанную выше. Если столкнетесь с трудностями - напишите вопрос в комментариях, и мы обязательно рассмотрим все подробнее.

Следующий момент, который важно понимать в работе с операциями increment и decrement - это то, что происходит полная замена предыдущего значения переменной на значение новое. То есть важно понимать, что операция a++; примененная к переменной a со значением 1 не просто временно увеличит ее значение на единицу но и именно перезапишет его на 2, и если к этой же переменной применить операцию инкремента еще раз то расчеты будут вестись уже не от 1 которую мы явно указали при инициализации переменной а, а от 2-ки, которая записалась туда после первой операции инкремента. То же самое с последующими применениями операций инкремента или декремента. Они всегда будут отталкивать от последнего перезаписанного значения.

Пример:

var a = 1;

// increment (увеличение)
a++;
alert(a);

a++;
alert(a);

a++;
alert(a);

a++;
alert(a);

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

А на сегодня все.

Ссылки на предыдущие уроки:

  1. Урок 1.
  2. Урок 2.
  3. Урок 3.
  4. Урок 4.
  5. Урок 5.
  6. Урок 6.
  7. Урок 7.
  8. Урок 8.
  9. Урок 9.

Продолжение следует...

95
789.299 GOLOS
На Golos с December 2016
Комментарии (5)
Сортировать по:
Сначала старые