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 ...
El comentario del autor
Непонятна эта часть: that would happen to be truthy when zero ...
Traducciones de usuarios (2)
- 1.
...чтобы избежать ошибок, когда программист верит, что он получил правильное число, что будет истиной, когда ноль...
El comentario del traductor
Желательно все предложение, тогда можно перевести корректно.
Traducción agregada por Vladislav P.Bronce en-ru4 - 2.
... чтобы избежать багов, когда программист считает, что он получил истинное число, которое могло стать истиным при нуле ...
Traducción agregada por Roman Grinyov0
Discusión (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., это кусок из комментария отсюда:
Наверное можно так: «чтобы избежать багов, когда программист считает, что он получил истинное число, которое могло стать истиным при нуле» ... Думаю, вопрос закрыт. Спасибо.