Автор оригинала: FreeCodeCamp Community Member.
Логический
Логины являются примитивным типом данных, обычно используемыми на языках компьютерных программиров. По определению, логический имеет два возможных значения: правда или ложь Отказ
В JavaScript часто неявное принуждение типа для логика. Если например, у вас есть если утверждение, которое проверяет определенное выражение, это выражение будет принуждено к логическому вопросу:
const a = 'a string';
if (a) {
console.log(a); // logs 'a string'
}Есть только несколько значений, которые будут принуждены к ложливому:
- false (не очень принужден, как это уже ложно)
- ноль
- неопределенный
- Нан
- 0
- “” (пустая строка)
Все остальные значения будут принуждены к true. Когда значение принуждено к логическому новому, мы также называем это «ложное», либо «правдоподобное».
Один из способов того, что используется принуждение к принуждению, является использованием операторов или ( ) и ( &&
const a = 'word'; const b = false; const c = true; const d = 0 const e = 1 const f = 2 const g = null console.log(a || b); // 'word' console.log(c || a); // true console.log(b || a); // 'word' console.log(e || f); // 1 console.log(f || e); // 2 console.log(d || g); // null console.log(g || d); // 0 console.log(a && c); // true console.log(c && a); // 'word'
Как вы можете видеть, или Оператор проверяет первый операнд. Если это правда или правда, он немедленно возвращает его (именно поэтому мы получаем «слово» в первом случае и правда во втором случае). Если это не правда или правда, он возвращает второй операнд (вот почему мы получаем «слово» в третьем случае).
С помощью и оператором он работает аналогично, но для «и« быть правдой, обе операнды должны быть правдивыми ». Так что он всегда будет возвращать второй операнд, если оба являются True/Landy, в противном случае он вернет ложь. Вот почему в четвертом случае мы получаем истину и в последнем случае мы получаем «слово».
Логический объект
Существует также родной объект JavaScript, который обернутся вокруг значения. Значение, передаваемое в качестве первого параметра, преобразуется в логическое значение, если необходимо. Если значение опущено, 0, -0, null, false, nan, undefined или пустая строка (“”), объект имеет начальное значение false. Все остальные значения, включая любой объект или строку «ложь», создают объект с начальным значением TRUE.
Не путайте примитивные логические значения True и False с истинными и ложными значениями логического объекта.
Подробнее
Любой объект, значение которого не является неопределенным или NULL, включая логический объект, значение которого является ложным, оценивает true при передаче в условное утверждение. Если true, это будет выполнять функцию. Например, условие следующего, если оператор оценивает true:
const x = new Boolean(false);
if (x) {
// this code is executed
}Это поведение не распространяется на логические примитивы. Например, условие следующего, если оператор оценивает false:
const x = false;
if (x) {
// this code is not executed
}Не используйте логический объект для преобразования не-логического значения в логическое значение. Вместо этого используйте Boolean в качестве функции для выполнения этой задачи:
const x = Boolean(expression); // preferred const x = new Boolean(expression); // don't use
Если вы укажете любой объект, включая логический объект, значение которого является ложным, в качестве начального значения логического объекта, новый логический объект имеет значение true.
const myFalse = new Boolean(false); // initial value of false
const g = new Boolean(myFalse); // initial value of true
const myString = new String('Hello'); // string object
const s = new Boolean(myString); // initial value of trueНе используйте логический объект вместо булева примитивного.