Преобразования типа

Прокрутить вниз

Преобразование типов 

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

К примеру, 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).  

Подчиняется правилам:  

Значение Становится…
0nullundefinedNaN"" false
любое другое значение true

 

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

  • undefined при численном реформировании становится NaN, не 0.  
  • «0» и строки из одних пробелов типа » » при логическом реформировании постоянно true. 

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