ADBlinnikov
7/14/2017 - 12:58 PM

Неявное приведение типов

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

// ********** Booleans **********
// Ряд значений расценивается языком как условно истинные или ложные
// Список условно ложных (falsy) значений
var falsy = [false, null, undefined, 0, NaN, '', ""];
// Список условано истинных выражений
var truthy = [true, {}, [], 42, "foo", new Date(), -42, 3.14, -3.14, Infinity, -Infinity];

// При сравнении переменных при помощи оператора `==` происходит
// неявное приведение типов переменных, в результате чего:
'' == false; // true
// Этого можно избежать используя строгое сравнение:
'' === false; // false

// ********** Numbers **********
// Наиболее стабильная функция преобразования,
// которая также может выдять числовые значения в строке
parseInt('08', 10);
parseInt('Hooroo 9', 10);
// Также есть более быстрые, но менее стабильные преобразователи
+'08';
Number('08');