null и undefined Flashcards

(3 cards)

1
Q
  1. В чем разница между null и undefined?
A
  1. В чем разница между null и undefined?

Для начала давайте поговорим о том, что у них общего.

Во-первых, они принадлежат к 7 «примитивам» (примитивным типам) JS:

let primitiveTypes = [‘string’, ‘number’, ‘null’, ‘undefined’, ‘boolean’, ‘symbol’, ‘bigint’]
Объяснить код с

Во-вторых, они являются ложными значениями, т.е. результатом их преобразования в логическое значение с помощью Boolean() или оператора “!!” является false:

console.log(!!null) // false
console.log(!!undefined) // false

console.log(Boolean(null)) // false
console.log(Boolean(undefined)) // false

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

undefined

A

переменной, которой не было присвоено значения, т.е. объявленной, но не инициализированной переменной;
функции, которая ничего не возвращает явно, например, console.log(1);
несуществующего свойства объекта.

В указанных случаях движок JS присваивает значение undefined.

let _thisIsUndefined
const doNothing = () => {}
const someObj = {
a: ‘ay’,
b: ‘bee’,
c: ‘si’
}
console.log(_thisIsUndefined) // undefined
console.log(doNothing()) // undefined
console.log(someObj[‘d’]) // undefined

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

null

A

null — это «значение отсутствия значения». null — это значение, которое присваивается переменной явно. В примере ниже мы получаем null, когда метод fs.readFile отрабатывает без ошибок:

fs.readFile(‘path/to/file’, (e, data) => {
console.log(e) // здесь мы получаем null
if(e) {
console.log(e)
}
console.log(data)
})
Объяснить код с

При сравнении null и undefined мы получаем true, когда используем оператор “==”, и false при использовании оператора “===”. О том, почему так происходит, см. ниже.

console.log(null == undefined) // true
console.log(null === undefined) // false

How well did you know this?
1
Not at all
2
3
4
5
Perfectly