true or false? два сразу?
Вот интересная задачка, не ясно почему это работает.
alert([0] == false); if ([0]) alert(true); |
Потому что при нестрогом сравнении срабатывает приведение типов
[0] → "0" → 0 → false == false var array = [0]; array.toString = function () { return "1"; }; alert(array == false); |
читайте справку от истоков
Если вкратце, то при операции сравнения(первая ваша строчка), оба операнда приводятся к числу, и равны оба нулю в условии же массив приводится к булевому, и становится истиной согласно правилам приведения типа в таком же варианте, сравнение уже false, так как массив приводится не к нулю, а единице, хотя он также истинен самостоятельно alert([1] == false); alert([1] == 1); if ([1]) alert(true); |
Octane,
ты неверно приводишь типы, для операции сравнения Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 16:42. |