Null JavaScript-ում
Null JavaScript-ում — Պատկերացում, Աշխատանք և Օգտագործում
Այս հոդվածում մանրամասն կանդրադառնանք null արժեքին JavaScript-ում. կքննարկենք դրա սեմանտիկան, տեխնիկական առանձնահատկությունները, տարբերությունը undefined-ից և լավագույն պրակտիկաները օգտագործման համար։
null-ը JavaScript-ում պրիմիտիվ տիպ է, որը ներկայացնում է դիտավորյալ դատարկ հղում: Այն օգտագործվում է, երբ ցանկանում ենք հստակ ցույց տալ, որ փոփոխականը չի հղվում որևէ օբյեկտի:
let data = null; // Հստակ նշում ենք, որ տվյալներ չկան
typeof null === 'object'
→ Պատմական սխալ, որը պահպանվել է համատեղելիության համար:
let cache = null; // Քեշը դեռևս չի լցված
// Սերվերից ստացված պատասխան՝ բացակայող դաշտով
const apiResponse = {
id: 123,
details: null // "details"-ը գոյություն չունի
};
document.getElementById('invalid') → null
Object.prototype.__proto__ → null
JSON.stringify({x: undefined}) → {"x": null}
// Ստեղծում ենք "մաքուր" օբյեկտ առանց պրոտոտիպի
const safeObject = Object.create(null);
console.log(safeObject.toString); // undefined
Հատկանիշ | null | undefined |
---|---|---|
Տիպ | object (պատմական սխալ) | undefined |
Սեմանտիկա | "Դատարկություն" | "Արժեք չկա" |
Օգտագործում | Ծրագրավորողի կողմից նշանակված | Ինտերպրետատորի կողմից գեներացված |
Թվային արժեք | +0 → 0 | NaN |
JavaScript-ի առաջին տարբերակներում (1995) տիպերը կոդավորվում էին արժեքների բիթային ներկայացմամբ.
000
0x00000000
(32 զրո)Այսպիսով, typeof օպերատորը null-ը մեկնաբանում էր որպես օբյեկտ: Սխալը ճանաչված է, բայց պահպանվել է՝ խուսափելու կոդի ճեղքումից:
if (value === null) {
// Մշակում ենք միայն null դեպքը
}
Երբ աշխատում եք օբյեկտների հետ, ավելի անվտանգ է օգտագործել null՝ undefined-ի փոխարեն:
const cleanData = JSON.parse(JSON.stringify(rawData), (key, value) => {
return value === undefined ? null : value;
});
const [userData, setUserData] = useState(null);
useEffect(() => {
fetchUser().then(data => {
setUserData(data || null); // undefined → null
});
}, []);
fs.readFile('config.json', (err, data) => {
if (err) {
return resolve(null); // Ֆայլը չկա → վերադարձնում ենք null
}
});
null-ը հզոր գործիք է JavaScript-ում, երբ օգտագործվում է հստակ սեմանտիկայով: Խորհուրդ է տրվում.