Jakiego typu jest null w javascripcie ? Można znależć sporo informacji, że jest typem typu object. Jednak, gdy zrobi się coś takiego:
const a = null;
console.log(a instanceof Object);
to zostaje zwrócona wartość false
. To jak to jest?
Jakiego typu jest null w javascripcie ? Można znależć sporo informacji, że jest typem typu object. Jednak, gdy zrobi się coś takiego:
const a = null;
console.log(a instanceof Object);
to zostaje zwrócona wartość false
. To jak to jest?
const a = null;
console.log( typeof a );
Wynik: object
.
Nie jest obiektem, jest jednym z JavaScriptowych prymitywów: https://developer.mozilla.org/en-US/docs/Glossary/Primitive
To co @overcq traktuje jako dowód jest uważane za błędne zachowanie
https://developer.mozilla.org/en-US/docs/Glossary/Null
A gdyby ktoś nie uznawał MDN za rzetelne źródło to zachęcam do zajrzenia bezpośrednio w specyfikację.
Saalin napisał(a):
Nie jest obiektem, jest jednym z JavaScriptowych prymitywów: https://developer.mozilla.org/en-US/docs/Glossary/Primitive
To co @overcq traktuje jako dowód jest uważane za błędne zachowanie
https://developer.mozilla.org/en-US/docs/Glossary/NullA gdyby ktoś nie uznawał MDN za rzetelne źródło to zachęcam do zajrzenia bezpośrednio w specyfikację.
Czyli jaki typ prymitywny ma null ? Po prostu null
?
Tak, zgodnie ze specyfikacją ECMA (punkt 6.1) typem nulla jest null.
The ECMAScript language types are Undefined, Null, Boolean, String, Symbol,Number, BigInt, and Object.
sajek587 napisał(a):
Jakiego typu jest null w javascripcie ? Można znależć sporo informacji, że jest typem typu object. Jednak, gdy zrobi się coś takiego:
const a = null; console.log(a instanceof Object);
to zostaje zwrócona wartość false. To jak to jest ?
Czytając ze specyfikacji języka https://tc39.es/ecma262/multipage/overview.html#sec-null-value mamy że null
jest prymitywem z typem "Null", ale widocznie sam język nie jest z tym konsystentny bo typeof null
to "object"
.
Riddle napisał(a):
Czytając ze specyfikacji języka https://tc39.es/ecma262/multipage/overview.html#sec-null-value mamy że
null
jest prymitywem z typem "Null", ale widocznie sam język nie jest z tym konsystentny botypeof null
to"object"
.
Standard definiuje zachowanie typeof
: https://tc39.es/ecma262/#sec-typeof-operator ale nigdzie nie jest napisane co właściwie typeof
oznacza, a w szczególności, że zwraca typ ;)