Рубрики
Без рубрики

Расчеты с логинами

Иногда мне нравится смотреть на причудливость языка, на котором я код и сравнивать его с другими … Tagged с JavaScript, Quirks, WebDev.

Иногда мне нравится смотреть на причудливость языка, на котором я код и сравнивать его с другими языками. На этот раз я подумал, что поделюсь с вами своими выводами, если вы также найдете их интересными и интересными. В этом случае я посмотрел на причуду, показанную в WTFJS , а именно делать математику с логинами. Давайте погрузимся.

true + true =?

В JavaScript мы используем оператор + для конкатената строк, а также для складывания чисел, но что происходит, когда мы переживаем несколько логитов в микс? Давай попробуем!

'Hi' + true;    // output: "Hitrue"
true + 'Hi';    // output: "trueHi"

Хорошо, пока, так что хорошо, JavaScript замечает, что мы используем строку с оператором + и рассматривают логическое, как строку, и объединяет их. Теперь давайте посмотрим на цифры.

5 + true;    // output: 6
true + 5;    // output: 6

Чего ждать? Давайте поближе посмотрим на то, что здесь происходит.

номер функции

Логическое значение передается Номер -Функция, которая преобразует его в число; Верно преобразуется в 1 и ложный до 0.

Примечание

Тип номера JavaScript имеет ограничения на то, что он может хранить, а также ограничивает то, насколько высоки могут быть числа, хранящиеся. Все числа хранятся в виде значений с плавающей запятой.

Если ему не удается преобразовать значение в число, оно вернет NAN. Он может преобразовать истинное, ложное, нулевое, а также десятичное и шестнадцатеричное число (в струнах).

Number(true);        // output: 1
Number(false);       // output: 0
Number(null);        // output: 0
Number(undefined);   // output: NaN
Number(0x7E5);       // output: 2021
Number('0x7E5');     // output: 2021
Number('12.5');      // output: 12.5

Расчет с логинами Только

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

true + true;     // output: 2
true + false;    // output: 1
false + false;   // output: 0

За пределами дополнения

Тот же эффект, конечно, происходит с вычитаниями, умножением и подразделениями, а также при использовании унарных операторов (положительных и отрицательных – хотя NAN не будет подписан).

+true       // output: 1
+false      // output: 0
+null       // output: 0
+undefined  // output: NaN
+0x75E      // output: 2021
+'0x75E'    // output: 2021
+'12.5'     // output: 12.5

Это просто js

Вы можете знать все это уже, так что давайте сравним это с несколькими другими языками.

Php и Python также позволит расчеты с логическими. Они оба также преобразуют Верно до 1 и ложный до 0.

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

Ошибка: плохие типы операндов для бинарного оператора ‘+’ Джава

Ошибка [E0277]: не может добавить Bool к {Integer} Ржавчина

Я надеюсь, что вам было весело читать о расчетах с логическими лицами. Спасибо за чтение!

Оригинал: “https://dev.to/soliloquizin/calculations-with-booleans-1i1p”