Далее на странице...
Псевдоистина и псевдоложь в Javascript это значения, по факту не являющиеся true и false, но принимаемые за true и false в условных выражениях.
То есть псевдоистина и псевдоложь с одной стороны не являются булевыми значениями, но именно в условных выражениях ведут себя как булевые.
Псевдоложные значения в JavaScript
Сначала нужно определиться, какие значения в Javascript относятся к псевдоложным (остальные - псевдоистинные).
В Javascript сущестует 5 псевдоложных значений:
- undefined
- null
- 0
- пустая строка
- NaN
Подробнее об этих значениях читайте здесь.
Рассмотрим в примере ниже: действительно ли указанные значения при составлении условий возвращают ЛОЖЬ, то есть false.
<script type="text/javascript">
/*undefined - неопределенная переменная */
var test_1;
if(test_1 == true){
console.log(true)}
else{
console.log(false)}
/* null - несуществующий объект */
var test_2 = document.getElementById("id");
if(test_2){
console.log(true)}
else{
console.log(false)}
/* ноль */
if(0){
console.log(true)}
else{
console.log(false)}
/* пустая строка */
if(""){
console.log(true)}
else{
console.log(false)}
/* NaN - не число*/
if(NaN){
console.log(true)}
else{
console.log(false)}
</script>
Из примера, что, действительно, неопределенная переменная undefined, несуществующий объект null, ноль 0, пустая строка и «не число» NaN в условиях принимают значение false, то есть являются псевдоложными значениями в Javascript.
Псевдоистинные значения в JavaScript
Теперь рассмотрим несколько примеров того, какие значения в Javascript являются псевдоистинными, то есть возвращают при составлении условий true.
<script type="text/javascript">
var test_0 = {
ex_1: "qwert",
ex_2: 21
}
/* объект */
if(test_0){
console.log(true)}
else{
console.log(false)}
/* массив */
if([]){
console.log(true)}
else{
console.log(false)}
/* число */
if(35){
console.log(true)}
else{
console.log(false)}
/* строка */
if(" "){
console.log(true)}
else{
console.log(false)}
</script>
- - - - - - - - - - консоль браузера - - - - - - - - - -
true
true
true
true
Пример продемонстрировал, что объект, массив (в данном случае пустой), любое число, любая строка (в данном случае пробел) при составлении условий возвращают true, то есть являются псевдоистинными значениями.
Добавил(а): Alex
Дата: 2023-10-10
Спасибо за пояснение! Искал, почему пустой массив - псевдоистинное значение :) 09.10.2023