Преобразования типа
Преобразование типов
Если вы новичок в сфере программирования, то серия наших статей поможет вам вникнуть в основную теорию, что станет для вас руководством -программирование на Академгородке. Зачастую функции и операторы значения к нужному типу приводят автоматически.
К примеру, alert механически преобразует любое значение к строке. Математические операторы преобразуют значения к числам. Бывают ситуации, когда очевидно нужно преобразовать значение в ожидаемый тип.
Программирование на Академгородке: строковое реформирование
Строковое реформирование происходит, когда нужно представить что-то в виде строки. К примеру, alert(value) преобразует значение к строке. Еще мы можем применять функцию String(value), дабы преобразовать значение к строке:
let value = true;
alert(typeof value); // boolean
value = String(value); // теперь value это строка «true»
alert(typeof value); // string
Реформирование проходит безусловным образом. false становится «false», null становится «null» и т.п.
Численное реформирование
Численное реформирование происходит в математических функциях и выражениях. К примеру, когда операция деления / используется не к числу:
alert( «6» / «2» ); // 3, строки преобразуются в числа
Мы можем применять функцию Number(value), дабы очевидно преобразовать value к числу:
let str = «123»;
alert(typeof str); // string
let num = Number(str); // становится числом 123
alert(typeof num); // number
Очевидное реформирование зачастую используется, когда мы ждем получить число из строкового контекста, к примеру из текстовых полей форм. Если строка не может быть очевидно приведена к числу, то итогом реформирования будет NaN.
К примеру: let age = Number(«Любая строка вместо числа»);
alert(age); // NaN, преобразование не удалось
Правила численного реформирования:
Значение | Преобразуется в… |
---|---|
undefined |
NaN |
null |
0 |
true / false |
1 / 0 |
string |
Пробельные символы по краям обрезаются. Далее, если остаётся пустая строка, то получаем 0 , иначе из непустой строки «считывается» число. При ошибке результат NaN . |
Примеры:
alert( Number(» 123 «) ); // 123
alert( Number(«123z») ); // NaN (ошибка чтения числа на месте символа «z»)
alert( Number(true) ); // 1
alert( Number(false) ); // 0
Так, null становится нулём, в свою очередь undefined приводится к NaN. Множество математических операторов также изготавливает данное реформирование, как мы увидим в дальнейшей главе.
Программирование на Академгородке: логическое реформирование
Логическое реформирование самое примитивное. Происходит в логических операциях (позднее мы познакомимся с условными проверками и сходственными конструкциями), но также может быть исполнено очевидно с поддержкой функции Boolean(value). Правило реформирования:
- Значения, которые подсознательно «пустые», как бы 0, пустой строки, null, undefined и NaN, становятся false.
- Все остальные значения становятся true.
К примеру:
alert( Boolean(1) ); // true
alert( Boolean(0) ); // false
alert( Boolean(«Привет!») ); // true
alert( Boolean(«») ); // false
Подметим, что строчка с нулём «0» — это true.
Кое какие языки (например, PHP) воспринимают строку «0» как false. Но в JavaScript, если строка не пустая, то она постоянно true.
alert( Boolean(«0») ); // true
alert( Boolean(» «) ); // пробел это тоже true (любая непустая строка это true)
Итого
Существует 3 особенно обширно используемых реформирования: строковое, численное и логическое.
- Строковое – Происходит, когда нам необходимо что-то вывести. Может быть вызвано с поддержкой String(value). Для простых значений работает безусловным образом.
- Численное – Происходит в математических операциях. Может быть вызвано с поддержкой Number(value).
Реформирование подчиняется правилам:
Значение | Становится… |
---|---|
undefined |
NaN |
null |
0 |
true / false |
1 / 0 |
string |
Пробельные символы по краям обрезаются. Далее, если остаётся пустая строка, то получаем 0 , иначе из непустой строки «считывается» число. При ошибке результат NaN . |
- Логическое – Происходит в логических операциях. Может быть вызвано с поддержкой Boolean(value).
Подчиняется правилам:
Значение | Становится… |
---|---|
0 , null , undefined , NaN , "" |
false |
любое другое значение | true |
Огромную часть из этих правил легко осознать и запомнить. Специальные случаи, в которых зачастую допускаются ошибки:
- undefined при численном реформировании становится NaN, не 0.
- «0» и строки из одних пробелов типа » » при логическом реформировании постоянно true.
Перед статьей есть тест, пройдя который вы сможете получить коины. Если вы хотите углубленно изучать язык кодинга JavaScript приглашаем вас на программирование на Академгородке.