Как мы знаем, JavaScript — это динамически типизированный язык, который иногда может сбить нас с толку, когда мы имеем дело с пустыми или несуществующими значениями. В этом сообщении блога мы рассмотрим различия между нулевыми, неопределенными, пустыми строками и пустыми массивами в JavaScript с примерами кода, иллюстрирующими каждую концепцию.
null — это намеренное отсутствие значения. Он представляет собой переменную, которая явно определена как не имеющая не значения.
let myVariable = null; console.log(myVariable); // Output: null console.log(typeof myVariable); // Output: "object"
Примечание: typeof null возвращает объект, что является известной особенностью JavaScript из-за устаревших причин.
undef представляет переменную, которая была объявлена, но ей еще не присвоено значение.
let myUndefinedVariable; console.log(myUndefinedVariable); // Output: undefined console.log(typeof myUndefinedVariable); // Output: "undefined" function myFunction(param) { console.log(param); } myFunction(); // Output: undefined
Пустая строка – это допустимая строка нулевой длины.
let emptyString = ''; console.log(emptyString); // Output: "" console.log(typeof emptyString); // Output: "string" console.log(emptyString.length); // Output: 0
Пустой массив представляет собой список без элементов.
let emptyArray = []; console.log(emptyArray); // Output: [] console.log(typeof emptyArray); // Output: "object" console.log(Array.isArray(emptyArray)); // Output: true console.log(emptyArray.length); // Output: 0
Давайте сравним эти разные типы:
console.log(null == undefined); // Output: true console.log(null === undefined); // Output: false console.log('' == null); // Output: false console.log('' == undefined); // Output: false console.log([] == null); // Output: false console.log([] == undefined); // Output: false console.log(Boolean(null)); // Output: false console.log(Boolean(undefined)); // Output: false console.log(Boolean('')); // Output: false console.log(Boolean([])); // Output: true
function isNullOrUndefined(value) { return value == null; } console.log(isNullOrUndefined(null)); // Output: true console.log(isNullOrUndefined(undefined)); // Output: true console.log(isNullOrUndefined('')); // Output: false console.log(isNullOrUndefined([])); // Output: false
function isEmpty(value) { if (typeof value === 'string') { return value.length === 0; } if (Array.isArray(value)) { return value.length === 0; } return false; } console.log(isEmpty('')); // Output: true console.log(isEmpty([])); // Output: true console.log(isEmpty('hello')); // Output: false console.log(isEmpty([1, 2, 3])); // Output: false
Понимание различий между нулевыми, неопределенными, пустыми строками и пустыми массивами имеет решающее значение для написания чистого и безошибочного кода JavaScript. Каждый из них имеет свои варианты использования и по-разному ведет себя при сравнении и проверке типов. Правильно используя эти значения и зная их нюансы, вы можете писать более надежные и удобные в обслуживании приложения JavaScript.
Не забывайте всегда учитывать контекст вашего приложения при принятии решения о том, какой из них использовать, и будьте последовательны в своем подходе ко всей базе кода.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3