прежде чем понять разницу между undefined и null в javascript, мы должны понять их сходство
они принадлежат к 7 примитивным типам javascript
let primitiveTypes = ['string','number','null','undefined','boolean','symbol','bigint'];
это ложные значения, которые оцениваются как false при преобразовании в булево значение с помощью boolean(value) или !!value
console.log(!!null);//logs false
console.log(!!undefined);//logs false
console.log(Boolean(null));//logs false
console.log(Boolean(undefined));//logs false
хорошо, давайте поговорим о разнице между undefined & null
undefined – это значение переменной по умолчанию, которой не было присвоено конкретное значение. или функция, у которой нет явного возвращаемого значения, например console.log(1), или свойство, которое не существует в объекте. механизм javascript делает это за нас, присваивая неопределенное значение.
let _thisIsUndefined;
const doNothing = () => {};
const someObj = {
a : 'ab',
b: 'bc',
c: 'cd'
}
console.log(_thisIsUndefined);//logs undefined
console.log(doNothing);//logs undefined
console.log(someObj['d']);//logs undefined
null – это “значение, которое не представляет никакого значения”. null – это значение, которое было явно определено для переменной. в данном примере мы получаем значение null, когда метод fs.readFile не выдает ошибку.
fs.readFile('path/to/file',(e,data) => {
console.log(e) // it logs null when no error occurred
if(e){
console.log(e)
}
console.log(data)
})
при сравнении null и undefiend мы получим true при использовании == и false при использовании ===
console.log(null == undefined); //logs true
console.log(null === undefined); //logs false
вот и все о разнице между undefined & null в javascript, следите за новостями.
читать далее
как стать javascript full stack инженером
7 убийственных односложных фраз на JavaScript, которые вы должны знать
7 лучших алгоритмов для улучшения навыков JavaScript