Set type string javascript

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

Приведение типов — это процесс преобразования данных одного типа в другой. Например, преобразование строковых данных в числовые.

В JavaScript существует два типа приведения типов:

  • Неявное преобразование — происходит автоматически.
  • Явное преобразование — нужно делать вручную.

Неявное преобразование в JavaScript

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

Неявное преобразование в строку (String)

// когда строка используется с оператором +, // оба операнда автоматически преобразовываются в строковый тип let result; result = '3' + 2; console.log(result) // "32" result = '3' + true; console.log(result); // "3true" result = '3' + undefined; console.log(result); // "3undefined" result = '3' + null; console.log(result); // "3null"

Примечание. Обратите внимание, что когда число добавляется к строке, JavaScript преобразует число в строку перед конкатенацией.

Неявное преобразование в число (Number)

// когда строки используются с операторами - , / , * // оба операнда автоматически преобразовываются в числовой тип let result; result = '4' - '2'; console.log(result); // 2 result = '4' - 2; console.log(result); // 2 result = '4' * 2; console.log(result); // 8 result = '4' / 2; console.log(result); // 2

Неявное преобразование нечисловой строки в NaN

// когда строки, которые нельзя преобразовать в число, // используются с операторами - , / , * // они преобразовываются в тип NaN let result; result = 'привет' - 'мир'; console.log(result); // NaN result = '4' - 'привет'; console.log(result); // NaN

Неявное преобразование логического значения в число (Number)

// при преобразовании логического значения // true преобразуется в 1, false в 0 let result; result = '4' - true; console.log(result); // 3 result = 4 + true; console.log(result); // 5 result = 4 + false; console.log(result); // 4

Примечание. JavaScript считает 0 как false , а все ненулевые числа как true . И если true преобразуется в число, результатом всегда будет 1.

Неявное преобразование значения null в число (Number)

// null преобразуется 0, когда используется с числами let result; result = 4 + null; console.log(result); // 4 result = 4 - null; console.log(result); // 4

Значение undefined с числами, логическими значениями и null

// при использовании математических операций с undefined // и числами, логическими значениями или значением null, // возвращается NaN let result; result = 4 + undefined; console.log(result); // NaN result = 4 - undefined; console.log(result); // NaN result = true + undefined; console.log(result); // NaN result = null + undefined; console.log(result); // NaN

Явное преобразование JavaScript

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

Читайте также:  Java if try success

Явное преобразование в число (Number)

Для преобразования числовых строк и булевых значений в числа используют метод Number() .

let result; // строка → число result = Number('324'); console.log(result); // 324 result = Number('324e-1') console.log(result); // 32.4 // логическое значение → число result = Number(true); console.log(result); // 1 result = Number(false); console.log(result); // 0

Пустая строка или null при преобразовании вернет 0.

let result; result = Number(null); console.log(result); // 0 let result = Number(' ') console.log(result); // 0

Если строку нельзя преобразовать в число, результатом явного преобразования будет NaN.

let result; result = Number("привет"); console.log(result); // NaN result = Number(undefined); console.log(result); // NaN result = Number(NaN); console.log(result); // NaN

Числа также можно получать из строк используя функции parseInt() , parseFloat() , унарный оператор + и Math.floor() .

let result; result = parseInt("20.01"); console.log(result); // 20 result = parseFloat("20.01"); console.log(result); // 20.01 result = +"20.01"; console.log(result); // 20.01 result = Math.floor("20.01"); console.log(result); // 20

Явное преобразование в строку (String)

Чтобы преобразовать другие типы данных в строки используют либо String() , либо toString() .

// число → строка let result; result = String(324); console.log(result); // "324" result = String(2 + 4); console.log(result); // "6" // другие типы данных → строка result = String(null); console.log(result); // "null" result = String(undefined); console.log(result); // "undefined" result = String(NaN); console.log(result); // "NaN" result = String(true); console.log(result); // "true" result = String(false); console.log(result); // "false" // использование toString() result = (324).toString(); console.log(result); // "324" result = true.toString(); console.log(result); // "true"

Примечание. String() преобразовывает null и undefined в строку. toString() при попытке преобразовать null выдаст ошибку.

Явное преобразование в логический тип (Boolean)

Для преобразования числовых строк и булевых значений в числа можно использовать метод Boolean .

Значения undefined , null , 0 , NaN , » преобразуются в false .

let result; result = Boolean(''); console.log(result); // false result = Boolean(0); console.log(result); // false result = Boolean(undefined); console.log(result); // false result = Boolean(null); console.log(result); // false result = Boolean(NaN); console.log(result); // false

Все остальные значения — в true .

result = Boolean(324); console.log(result); // true result = Boolean("привет"); console.log(result); // true result = Boolean(' '); console.log(result); // true

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

Вот шпаргалка по преобразованиям типов в типы String, Number и Boolean.

Значение → String → Number → Boolean
1 «1» 1 true
0 «0» 0 false
«1» «1» 1 true
«0» «0» 0 true
«десять» «десять» NaN true
true «true» 1 true
false «false» 0 false
null «null» 0 false
undefined «undefined» NaN false
» «» 0 false
‘ ‘ » « 0 true

СodeСhick.io — простой и эффективный способ изучения программирования.

2023 © ООО «Алгоритмы и практика»

Источник

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

Чаще всего операторы и функции автоматически приводят переданные им значения к нужному типу.

Например, 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 Пробельные символы (пробелы, знаки табуляции \t , знаки новой строки \n и т. п.) по краям обрезаются. Далее, если остаётся пустая строка, то получаем 0 , иначе из непустой строки «считывается» число. При ошибке результат NaN .
alert( Number(" 123 ") ); // 123 alert( Number("123z") ); // NaN (ошибка чтения числа на месте символа "z") alert( Number(true) ); // 1 alert( Number(false) ); // 0

Учтите, что null и undefined ведут себя по-разному. Так, 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

Некоторые языки (к примеру, 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.

Источник

Оцените статью