Приведение типов в JavaScript

Приведение типов может понадобиться, если нам нужно вернуть данные определённый типа. Банальный пример, нужно вернуть true, если элемент есть на странице, иначе false.

На jquery:

if($('#findID').length == 1))
    return true;
else
    return false;

Лично мне больше нравится вариант:

return !!$('#findID').length;

toBoolean

В Javascript преобразование типа к boolean можно сделать следующими способами:

!!myVar
Boolean(myVar)

Оба предложенных варианта toBoolean ("к булевскому") преобразуют свой аргумент в значение типа Boolean согласно следующей таблице:

Входной тип Результат
Undefined false
Null false
Boolean Результат совпадает с входным аргументом (преобразование не производится).
Number Результат равен false, если аргумент равен 0 или NaN, иначе результат равен true.
String Результат равен false, если аргумент является пустой строкой (его длина равна нулю), иначе результат равен true.
Object true

Примеры toBoolean в javascript, используя встроенную функцию Boolean():

var var1 = NaN;
!!var1; //false
Boolean(var1); //false

var var2 = 'false'; //строка, любая строка кроме пустой '' -> будет true
!!var2; //true
Boolean(var2); //true

var var3 = false;
!!var3; //false
Boolean(var3); //false

var var4 = 0;
!!var4; //false
Boolean(var4); //false

toNumber

В Javascript преобразование чисел, строк, объектов к числу (не обязательно целому, может быть и дробное) можно сделать c помощью функции Number():

Number(myVar); 

("к числу") преобразует свой аргумент в значение типа Number согласно следующей таблице:

Входной тип Результат
Undefined NaN
Null 0
Boolean Результат равен 1, если аргумент равен true. Результат равен 0, если аргумент равен false.
Number Результат совпадает с входным аргументом (преобразование не производится).
String 1. Для строкового численного литерала вернёт исходное число.
2. Для не численного литерала вернёт NaN.
Object Применяются следующие шаги:

1. Вызвать ToPrimitive (входной аргумент, подсказка Number).

2. Вызвать ToNumber(Результат(1)).

3. Вернуть Результат(2).

Примеры преобразования toNumber, используя встроенную функцию Number в javascript:

Number(5); //5
Number('0.25'); //0.25
Number('q5'); //NaN
Number('abc'); //NaN
Number(false); //0
Number(true); //1

Преобразование к целочисленному типу (parseInt)

Функция parseInt ("к целому") преобразует свой аргумент в целочисленное значение. Примеры использования функции parseInt в javascript:

parseInt(5); //5
parseInt(5.33); //5
parseInt('5.44'); //5
parseInt(true); //NaN
parseInt(false); //NaN
parseInt('abc'); //NaN
parseInt('5abc'); //5
parseInt('x5abc'); //NaN

 

 
Поисковые запросы, по которым приходили пользователи
 
 
 
 

icon Комментарии 7

 ggg 12 лет назад
что за бред > return toBoolean($('#findID').length);
ты хоть сам это пробовал?

return !!$('#findID').length
 root 12 лет назад
ggg, ты прав.
 klim 12 лет назад
and?
 klim 12 лет назад
root.toPrimitive
Fatal Error
 root 12 лет назад
Это копипаст, нельзя применять как руководство к действию.
Так делать можно: return !!$('#findID').length - на выходе имеем bool.
 ggg 12 лет назад
и где вы скопипастили return toBoolean($('#findID').length);
ведь сами написали, что:
"Лично мне больше нравится вариант:
return toBoolean($('#findID').length);"

root.toNeanderthalensis
 suzanna 12 лет назад
wtf
Ваш комментарий к статье.. (для авторизованных)

ctrl+enter

icon Вход в систему

зарегистрироваться
НОВЫЕ ПОЛЬЗОВАТЕЛИ