Что такое истинные и ложные значения в JavaScript? Как использовать истинные и ложные значения в JavaScript?

Оформить интерактивную викторину https://quizzesforyou.com/quiz/jstruthyfalsy

В JavaScript значения можно классифицировать как истинные или ложные. Знание того, какие значения считаются истинными, а какие ложными, позволяет писать более лаконичный и эффективный код. Давайте рассмотрим истинные и ложные значения в JavaScript на примерах кода.

Истинные ценности:

Истинное значение — это любое значение, которое считается истинным при оценке в логическом контексте. Верными считаются следующие значения:

  1. Непустые строки: любая строка, содержащая хотя бы один символ, считается достоверной.
var name = "John";
if (name) {
  console.log("Hello, " + name);
}

Output: "Hello, John"  

2. Числа. Любое ненулевое число (положительное или отрицательное) считается верным.

var count = 42;
if (count) {
  console.log("Count is: " + count);
}

Output: "Count is: 42"

3. Объекты. Любой объект JavaScript, включая массивы и функции, считается достоверным.

var person = {
  name: "Alice",
  age: 25
};
if (person) {
  console.log("Person's name is: " + person.name);
}

Output: "Person's name is: Alice"

4. Массивы. Даже пустой массив считается достоверным.

var myArray = [];
if (myArray) {
  console.log("Array is not empty");
}

Output: "Array is not empty"

Ложные значения:

Ложное значение — это любое значение, которое считается ложным при оценке в логическом контексте. Ложными считаются следующие значения:

  1. Пустые строки: пустая строка, представленная знаком « », считается ложной.
var username = "";
if (!username) {
  console.log("Please provide a username");
}

Output: "Please provide a username"

2. Ноль: число ноль (0) считается ложным.

var quantity = 0;
if (!quantity) {
  console.log("No items in the cart");
}

Output: "No items in the cart"

3. NaN: специальное значение NaN (не число) считается ложным.

var result = parseInt("abc");
if (!result) {
  console.log("Invalid number");
}

Output: "Invalid number"

4. null and undefined: и null, и undefined считаются ложными.

var data = null;
if (!data) {
  console.log("No data available");
}

Output: "No data available"

Оформить интерактивную викторину https://quizzesforyou.com/quiz/jstruthyfalsy

  1. Каков результат?
console.log(!!"0");

правда

б) ложный

c) 0

Ответ: а) верно

Фрагмент кода использует оператор двойного отрицания (!!), который приводит значение к соответствующему логическому представлению. В JavaScript любая непустая строка считается истинной. Следовательно, «0» приводится к истинному, и результат является истинным.

2. Каков результат?

var x = " ";
console.log(Boolean(x));

правда

б) ложный

c) “ “

Ответ: а) верно

Функция Boolean() используется для явного преобразования значения в его логическое представление. В JavaScript пустая строка считается ложной, но строка с одним пробелом («») считается истинной. Следовательно, Boolean(x) оценивается как true, и результат является true.

3. Каков результат?

console.log(Boolean(Symbol()));

правда

б) ложный

в) Символ

Ответ: а) верно

Символ JavaScript считается истинным значением. Следовательно, Boolean(Symbol()) оценивается как true, и результат является true.

4. Какое из следующих значений считается ложным в JavaScript?

a) “0”

b) {}

c) []

d) -1

Ответ: а) «0»

«0» считается ложным, а объекты (включая пустые объекты {}) и массивы (включая пустые массивы []) считаются истинными. Число -1 тоже верно.

5. Каков результат?

console.log(0 || "Hello" && (null ?? true));

a) 0

б) «Здравствуйте»

в) ноль

г) правда

Ответ: г) верно

0 || "Hello" оценивается как 'Hello', потому что 0 является ложным, а оператор ИЛИ возвращает первое обнаруженное истинное значение. "Hello" && null оценивается как null, потому что оператор AND возвращает последнее обнаруженное ложное значение. null ?? true оценивается как true, поскольку null считается ложным, и нулевое объединение оператор предоставляет значение по умолчанию true.

Следовательно, результат true.

6. Каков результат?

console.log("" === false);

правда

б) ложный

Ответ: б) неверно

Оператор строгого равенства (===) сравнивает значение и тип операндов. В этом случае пустая строка ("") является ложным значением, а false — логическим значением. Поскольку они имеют разные типы, сравнение оценивается как false.

7. Каков результат?

console.log(Boolean(-42));

правда?

б) ложный

c) 0

Ответ: а) верно

любое ненулевое число считается истинным, включая отрицательное число -42. Следовательно, Boolean(-42) оценивается как истина, и результат истинен.

8. Каков результат?

let obj = {
  prop1: {
    prop2: null
  }
};

console.log(obj.prop1?.prop2 ?? "Default value");

а) ноль

б) «Значение по умолчанию»

в) ложный

Ответ: б) «Значение по умолчанию»

Фрагмент кода использует необязательную цепочку (?.), чтобы проверить, определено ли obj.prop1.prop2. Если он не определен или оценивается как null или undefined, нулевой оператор объединения (??) предоставляет значение по умолчанию «Значение по умолчанию». В данном случае obj.prop1.prop2 равно null, поэтому результатом будет «Значение по умолчанию».

9. Каков результат?

console.log(Boolean(-0))

правда

б) ложный

c) 0

Ответ: неверно

И положительный нуль (+0), и отрицательный ноль (-0) считаются ложными.

Проверьте больше викторин @ https://quizzesforyou.com/

Ссылки: https://developer.mozilla.org/en-US/docs/Glossary/Truthy

https://developer.mozilla.org/en-US/docs/Glossary/Falsy