Первое, что необходимо знать, это то, что в Javascript существует существенная разница между null
и empty.
Если вы объявите переменную и присвоите ей пустое значение ""
, а затем сравните ее с другой переменной, которой вы присвоили значение null
, вы легко заметите, что они отличаются, просто проверив их тип.
const str1 = ""
const str2 = null
console.log(typeof str1) // "string"
console.log(typeof str2) // "object"
console.log(str1 == str2) //false
console.log(str1 === str2) //false
Вы можете найти демонстрацию кода в этой статье по этой ссылке
Также полезно помнить, что означает null
.
Это литеральное значение в Javascript, которое намеренно представляет собой нулевое значение. Это одно из примитивных значений языка.
Обычно вы используете его в API, где вы ожидаете объект, но по каким-то причинам бизнес-логики этот объект не может быть получен.
Кстати, null
и undefined
тоже не одно и то же!
typeof null // object (bug en ECMAScript, debería ser null)
typeof undefined // undefined
null === undefined // false
null == undefined // true
Сейчас самое время рассмотреть различия между различными операторами равенства и тождества в Javascript. Хорошую статью, объясняющую это, можно найти в Frontend School, написанную замечательным Горасио Эррерой.
Теперь понятно, что null
и пустая строка — это не одно и то же:
Как проверить, пуста ли строка?
Вы знаете, что пустая строка — это фактически строка, которая не содержит символов, для проверки этого просто используйте оператор ===
.
const str = "";
if(str === "") {
console.log("El string está vacío");
}
Но что произойдет, если строка содержит пробелы?
Считаете ли вы эти пробелы пустой строкой?
Действительно, пробелы " "
являются символами, поэтому сравнение не будет работать. Это можно легко решить, если сначала удалить эти пробелы, а затем сравнить.
const whiteSpaces= " ";
if(whiteSpaces.trim() === "") {
console.log("El string está vacío");
}
Другой способ проверить, пуста ли строка, т.е. не содержит ли она символов, заключается в использовании свойства length
.
String
— это объект, но он имеет общие свойства с массивами, например, свойство length
, которое представляет длину строки.
Вы можете узнать больше об этом свойстве, посетив документацию MDN.
const whiteSpaces= " ";
if(whiteSpaces.trim().length === 0) {
console.log("El string está vacío");
}
Как проверить, является ли строка нулевой?
Это просто, поскольку null
— это значение, которое может содержать переменная, поэтому вам просто нужно сравнить имеющуюся у вас строковую переменную со значением null
.
const nullStr = null;
if (nullStr === null) {
console.log("nullStr es null");
}
✉️ Присоединяйтесь к Micro-bytes 🐦 Следите за мной в Twitter ❤️ Поддержите мою работу