Devinora
@Devinora
Front-end web development

Почему числа с унарным минусом выдают 'true' в логическом контексте?

console.log(!!-20);
"true"
  • Вопрос задан
  • 181 просмотр
Решения вопроса 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
www.ecma-international.org/ecma-262/7.0/index.html...
Undefined -> false
Null -> false
Boolean - как есть
Number - +0, -0, NaN -> false, остальное -> true
String - пустая строка -> false, остальное -> true
Symbol -> true
Object -> true
Ответ написан
Комментировать
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Потому что false - это только 0 и NaN. Всё остальное - true (включая Infinity и -Infinity).
Если для вас это важно, то проверяйте на x > 0
Ответ написан
filgaponenko
@filgaponenko
frontend developer
https://www.dropbox.com/s/q4ayb96dlzwbvnz/Screensh...
см. "javascript подробное руководство" Фленагана
раздел 3.8
потом 4.9.1
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы