Я думаю, что в каждом языке я знаюJavascript: Если ([]) неожиданный результат
if(a)
это то же самое, как
if(a == true)
Оказывается, в JavaScript это не так, потому что:
if([])
Кажется, действовать, как если условие выполнено, но:
if([] == true)
Противоположная вещь.
Я не могу найти никакого объяснения, особенно, что эта проблема не возникает с пустой строкой, например (== true
, но не === true
, то же, что и пустой массив). Это ошибка в JavaScript или что?
'if (a) [...] тот же, что и [...] if (a == true)' - erm, это может быть просто PHP и, возможно, Python? Не совсем универсально, чтобы преобразовать произвольное значение в логическое. Во всяком случае, [здесь] (http://dorey.github.io/JavaScript-Equality-Table/) заключается в том, как истинные/ложные значения работают в JS. – vlaz