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, время: 23:57. |