null
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Das null Schlüsselwort bezieht sich auf den null primitiven Wert, der die absichtliche Abwesenheit eines Objektwerts darstellt.
Probieren Sie es aus
function getVowels(str) {
const m = str.match(/[aeiou]/gi);
if (m === null) {
return 0;
}
return m.length;
}
console.log(getVowels("sky"));
// Expected output: 0
Syntax
null
Beschreibung
Das Schlüsselwort null ist ein Literal für den Wert null. Im Gegensatz zu undefined, das eine globale Variable ist, ist null kein Bezeichner, sondern ein Syntax-Schlüsselwort.
null hat die folgenden Verhaltensweisen:
- Ähnlich wie
undefinedwirft der Zugriff auf jede Eigenschaft vonnulleinenTypeError, anstattundefinedzurückzugeben oder Prototypketten zu durchsuchen. - Ähnlich wie
undefinedwirdnullfür boolesche Operationen als falsy und für nullish coalescing und optional chaining als nullish behandelt. - Das Ergebnis von
typeof nullist"object". Dies ist ein Fehler in JavaScript, der aus Gründen der Abwärtskompatibilität nicht behoben werden kann. - Im Gegensatz zu
undefinedkannJSON.stringify()nullgetreu darstellen.
JavaScript ist einzigartig, da es zwei nullish Werte hat: null und undefined. Semantisch ist ihr Unterschied sehr gering: undefined steht für die Abwesenheit eines Wertes, während null die Abwesenheit eines Objekts darstellt. Zum Beispiel ist das Ende der Prototypkette null, weil die Prototypkette aus Objekten besteht; document.querySelector() gibt null zurück, wenn keine Übereinstimmung gefunden wird, da das Ergebnis ein Objekt wäre, wenn es eine Übereinstimmung gäbe. Wenn Sie eine API entwerfen, sollten Sie wahrscheinlich null und undefined als gleichwertige Eingaben akzeptieren, da viele Codebasen stilistische Regeln darüber haben, wann standardmäßig null oder undefined verwendet wird.
Beispiele
>Unterschied zwischen null und undefined
Beim Überprüfen auf null oder undefined, beachten Sie die Unterschiede zwischen Gleichheits- (==) und Identitätsoperatoren (===), da der erstere eine Typkonvertierung durchführt.
typeof null; // "object" (not "null" for legacy reasons)
typeof undefined; // "undefined"
null === undefined; // false
null == undefined; // true
null === null; // true
null == null; // true
!null; // true
Number.isNaN(1 + null); // false
Number.isNaN(1 + undefined); // true
Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-null-value> |
Browser-Kompatibilität
Loading…