about icon-addNote android4 Answer apple4 icon-appStoreEN icon-appStoreES icon-appStorePT icon-appStoreRU Imported Layers Copy 7 icon-arrow-spined icon-ask icon-attention icon-bubble-blue icon-bubble-red ButtonError ButtonLoader ButtonOk icon-cake icon-camera icon-card-add icon-card-calendar icon-card-remove icon-card-sort chrome-extension-ru chrome-extension-es-mx chrome-extension-pt-br chrome-extension-ru comment comment icon-cop-cut icon-cop-star Cross Dislike icon-editPen icon-entrance icon-errorBig facebook flag flag_vector icon-globe icon-googlePlayEN icon-googlePlayRU icon-greyLoader icon-cake Heart 4EB021E9-B441-4209-A542-9E882D3252DE Created with sketchtool. Info Kebab icon-lamp icon-lampBig icon-learnHat icon-learning-hat Dislike Loup Loup icon-more icon-note icon-notifications icon-pen Pencil icon-play icon-plus-light icon-plus icon-rosie-cut Rune scrollUp Share-icon Shevron-Down Shevron Left Shevron Right sound sound1 sound2 sound3 sound4 sound2 icon-star Swap icon-translate Trash icon-tutor-ellipsis icon-tutor-flip Tutor folder icon icon-tutor-learned icon-twoWayArrow Mezhdunarodny_logotip_VK vk icon-word pen_icon Logo Logo Logo
Go to Questions & Answers
Roman Grinyovasked for translation 8 лет назад
How to translate? (en-ru)

... to avoid bugs where the programmer believes he got a true numeral that would happen to be truthy when zero ...

Author’s comment

Непонятна эта часть: that would happen to be truthy when zero ...

User translations (2)

  1. 1.

    ...чтобы избежать ошибок, когда программист верит, что он получил правильное число, что будет истиной, когда ноль...

    Translator's comment

    Желательно все предложение, тогда можно перевести корректно.

    translation added by Vladislav P.
    Bronze en-ru
    4
  2. 2.

    ... чтобы избежать багов, когда программист считает, что он получил истинное число, которое могло стать истиным при нуле ...

    translation added by Roman Grinyov
    0

Discussion (5)

Roman Grinyovadded a comment 8 лет назад

Thx, это я понимаю ... Однако комментарий о том, почему так сделали,.. и я вот вникаю что сказал автор «дословно» ... Хотя я думал, что в JS строка '0' это «true»,.. так как учил его по JSR (learn.javascript.ru) и там указано, что «В отличие от многих языков программирования (например PHP), "0" в JavaScript является true, как и строка из пробелов» и пример: alert(!!'0'); то есть строка с нулём «true», мы её отрицаем «!» получаем «false», отрицаем ещё раз «!» получаем «true» ... Что-то какая-то неоднозначность вышла у JS ... Или я чего-то не понял с этим (alert(!!'0')) примером: https://jsfiddle.net/ogwpbsrj/ ?

G Cadded a comment 8 лет назад

Пример с 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!

Roman Grinyovadded a comment 8 лет назад

Да, сегодня шёл на работу и понял всё ... Спасибо за беседу.

Roman Grinyovadded a comment 8 лет назад

Vladislav P., это кусок из комментария отсюда: http://php.net/manual/en/language.types.boolean.php#118181; просто как-то сложно автор, по-моему, выразился. Дело не программировании программированием мы уже с G C разобрались :)), а просто в правильном переводе так как адекватный вариант что-то в голову не приходит.

Roman Grinyovadded a comment 8 лет назад

Наверное можно так: «чтобы избежать багов, когда программист считает, что он получил истинное число, которое могло стать истиным при нуле» ... Думаю, вопрос закрыт. Спасибо.

Share with friends