Задать вопрос
kentuck1213
@kentuck1213

Почему (-1) это true?

if (-1) {
                console.log('true');
            } else {
                console.log('false');
            }
//Вывод true

Почему так произходит ? и как быть ?
  • Вопрос задан
  • 1710 просмотров
Подписаться 1 Оценить 1 комментарий
Решения вопроса 3
@mr_ko
Javascript, Node.js. React.js, Vue.js, Wordpress
Потому что оно не ноль :)
Ответ написан
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Ну... это долгая история, но во многих языках, логика построена так, что числа отличные от нуля - есть положительные (true), при приведении их к булевому типу. В этом есть иногда смысл, но на пальцах объяснить это (вырвав из контекста) - относительно сложно.

Если хотите изменить логику, можно сделать какую-то сокращенную проверку, типа такой:
var b = (a > 0);

Тогда, b будет false, если a будет меньше или равно нулю.
Ответ написан
@developer007
предположим что -1 это signed Int
то у числа такой вид 0xFFFFFFFF = 11111111 11111111 11111111 11111111
не похоже на 0 (false) да?

0 так выглядет
0x00000000 = 00000000 00000000 00000000 00000000

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

false это нет сигнала , нет напряжения (0)
true есть сигнал (1)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект