Thx, это я понимаю ... Однако комментарий о том, почему так сделали,.. и я вот вникаю что сказал автор «дословно» ... Хотя я думал, что в JS строка '0' — это «true»,.. так как учил его по JSR (learn.javascript.ru) и там указано, что «В отличие от многих языков программирования (например PHP), "0" в JavaScript является true, как и строка из пробелов» и пример: alert(!!'0'); то есть строка с нулём — «true», мы её отрицаем «!» — получаем «false», отрицаем ещё раз «!» — получаем «true» ... Что-то какая-то неоднозначность вышла у JS ... Или я чего-то не понял с этим (alert(!!'0')) примером:
... to avoid bugs where the programmer believes he got a true numeral that would happen to be truthy when zero ...
Comentário do autor
Непонятна эта часть: that would happen to be truthy when zero ...
Traduções dos usuários (2)
- 1.
...чтобы избежать ошибок, когда программист верит, что он получил правильное число, что будет истиной, когда ноль...
Comentário do tradutor
Желательно все предложение, тогда можно перевести корректно.
Tradução adicionada por Vladislav P.Bronze en-ru4 - 2.
... чтобы избежать багов, когда программист считает, что он получил истинное число, которое могло стать истиным при нуле ...
Tradução adicionada por Roman Grinyov0
Discussão (5)
Пример с JS был неудачный. Строка "0" все-таки truthy, не falsy, а falsy становится только при сравнении из-за приведения типов с обоих сторон. И это не единственный прикол JS (-:
А в PHP строка "0" всегда будет falsy. И сделано это для consistency и во избежание багов. Это и хотел сказать автор комментария.
console.log ('0' == false ? 'falsy' : 'truthy'); // falsy!
console.log ('0' ? 'truthy' : 'falsy'); // truthy!
$ php -r "print ('0' ? 'truthy' : 'falsy');" // falsy
$ php -r "if ('0') { echo 'truthy'; } else { echo 'falsy'; }" // falsy
if ('0') { console.log ('truthy'); } else { console.log ('falsy'); } // truthy!
Да, сегодня шёл на работу и понял всё ... Спасибо за беседу.
Vladislav P., это кусок из комментария отсюда:
Наверное можно так: «чтобы избежать багов, когда программист считает, что он получил истинное число, которое могло стать истиным при нуле» ... Думаю, вопрос закрыт. Спасибо.