Что такое истинные и ложные значения в JavaScript? Как использовать истинные и ложные значения в JavaScript?
Оформить интерактивную викторину https://quizzesforyou.com/quiz/jstruthyfalsy
В JavaScript значения можно классифицировать как истинные или ложные. Знание того, какие значения считаются истинными, а какие ложными, позволяет писать более лаконичный и эффективный код. Давайте рассмотрим истинные и ложные значения в JavaScript на примерах кода.
Истинные ценности:
Истинное значение — это любое значение, которое считается истинным при оценке в логическом контексте. Верными считаются следующие значения:
- Непустые строки: любая строка, содержащая хотя бы один символ, считается достоверной.
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"
Ложные значения:
Ложное значение — это любое значение, которое считается ложным при оценке в логическом контексте. Ложными считаются следующие значения:
- Пустые строки: пустая строка, представленная знаком « », считается ложной.
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
- Каков результат?
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