JavaScript/FAQ

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

Типы данных

Как убедиться/проверить, что строка состоит только из символов 0—9, то есть в ней содержится число?
Для этого просто выполните со строкой арифметическое действие не меняющее значение. Например, умножьте или разделите строку на 1, либо вычтите 0:

var c = '1234';
d = c * 1;
//или
d = c * 1;
//или
d = c - 0;

Так как эти арифметические действия производятся только с числами, то JavaScript превращает строку в число, если это возможно. В противном случае, результат — NaN.
Не в коем случае не используйте для этого оператор «+», так как при наличии хоть одного операнда типа «строка» этот оператор будет работать как конкатенация строк (с приведением типов) а не сложение чисел. Если написать:

var c = '1234';
d = c + 0;

Результатом будет «12340», потому что JavaScript использует «+» для соединения строк, а не их сложения как числа.


Как в javascript преобразовать строку в число?
Если Вы хотите преобразовать строку в число, сначала убедитесь, что она состоит только из символов 0—9. В JavaScript нет специальных операторов приведения типа вроде «(int)var1» или методов вроде "to_int()", поэтому для приведения строки к числу надо выполнять любые арифметические операции. Выполните со строкой любое арифметическое действие, кроме сложения т.к. оно будет интерпретироваться как конкатенация строк, не меняющее её значения:

var c = '1234';
d = c * 1;
//или
d = c * 1;
//или
d = c - 0;

Операторы

Как в javascript выполнить сложение вместо конкатенации?
Для этого надо преобразовать строку в число так как арифметические операции возможны только с числами:

var c = '1234' * 1 + 5;
//или
var c = '1234' / 1 + 5;
//или
var c = ('1234' - 0) + 5;

Данный материал относится к ЯП JS.Шаблон:FAQ