新聞中心
在 TypeScript 中,空值(null 和 undefined)是兩種不同的值,它們都表示缺少值,但它們的用途和行為有所不同。

創(chuàng)新互聯(lián)專注于庫車網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供庫車營銷型網(wǎng)站建設(shè),庫車網(wǎng)站制作、庫車網(wǎng)頁設(shè)計(jì)、庫車網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造庫車網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供庫車網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
1、null
null 是一個(gè)特殊的值,表示一個(gè)變量沒有被賦值,在 JavaScript 中,null 通常用于表示對(duì)象不存在或者函數(shù)沒有返回任何值,在 TypeScript 中,null 是一個(gè)有效的值類型,可以賦值給任何類型的變量。
我們可以創(chuàng)建一個(gè)名為 myVar 的變量,并將其設(shè)置為 null:
let myVar: any = null;
我們還可以使用類型斷言將一個(gè)變量顯式地轉(zhuǎn)換為 null:
let maybeNull: string = "hello"; maybeNull = maybeNull as null; // 顯式類型斷言
2、undefined
undefined 是一個(gè)特殊的值,表示一個(gè)變量被聲明了,但沒有賦值,在 JavaScript 中,當(dāng)我們嘗試訪問一個(gè)未定義的變量時(shí),它的值為 undefined,在 TypeScript 中,undefined 是一個(gè)有效的值類型,可以賦值給任何類型的變量。
我們可以創(chuàng)建一個(gè)名為 myUndefinedVar 的變量,并將其設(shè)置為 undefined:
let myUndefinedVar: any = undefined;
我們還可以使用類型斷言將一個(gè)變量顯式地轉(zhuǎn)換為 undefined:
let maybeUndefined: string = "hello"; maybeUndefined = maybeUndefined as undefined; // 顯式類型斷言
3、區(qū)別與使用場(chǎng)景
雖然 null 和 undefined 都表示缺少值,但它們?cè)谑褂脠?chǎng)景上有所不同,以下是它們的主要區(qū)別:
null 通常用于表示對(duì)象不存在或者函數(shù)沒有返回任何值,當(dāng)我們需要表示一個(gè)變量可能為空時(shí),通常會(huì)使用 null,我們可能會(huì)有一個(gè)表示用戶 ID 的變量,如果用戶尚未登錄,那么這個(gè)變量的值應(yīng)該為 null。
undefined 通常用于表示一個(gè)變量被聲明了,但沒有賦值,當(dāng)我們需要表示一個(gè)變量尚未被初始化時(shí),通常會(huì)使用 undefined,我們可能會(huì)有一個(gè)表示年齡的變量,如果用戶還沒有輸入年齡,那么這個(gè)變量的值應(yīng)該為 undefined。
4、空值檢查
在 TypeScript 中,我們可以使用嚴(yán)格相等運(yùn)算符(===)來檢查一個(gè)值是否為 null 或 undefined。
function isNullOrUndefined(value: any): boolean {
return value === null || value === undefined;
}
我們還可以使用邏輯非運(yùn)算符(?。﹣頇z查一個(gè)值是否不為 null 或 undefined。
function isNotNullOrDefined(value: any): boolean {
return value !== null && value !== undefined;
}
5、空值合并操作符(??)
TypeScript 3.7 引入了一個(gè)名為“空值合并操作符”(nullish coalescing operator)的新特性,它允許我們?cè)谝粋€(gè)表達(dá)式中安全地訪問一個(gè)可能為空的值,語法如下:
const result = a ?? b; // a 為 null 或 undefined,則返回 b,否則返回 a
const userAge = user?.age ?? 0; // user.age 為 null 或 undefined,則返回 0,否則返回 user.age
6、never 類型
除了 null 和 undefined,TypeScript 還有一個(gè)名為 never 的特殊類型,never 類型表示永遠(yuǎn)不會(huì)返回的值的類型,拋出異常的函數(shù)會(huì)返回 never:
function errorFunction(): never {
throw new Error("An error occurred"); // 這個(gè)函數(shù)永遠(yuǎn)不會(huì)返回任何值,因此其類型為 never
}
歸納一下,TypeScript 中的空值(null 和 undefined)是兩種不同的值,它們都表示缺少值,但它們的用途和行為有所不同,在使用 TypeScript 時(shí),我們需要了解這些空值的特性以及如何在代碼中使用它們,通過正確地處理空值,我們可以編寫出更健壯、更安全的 TypeScript 代碼。
分享名稱:TypeScript中的空值
轉(zhuǎn)載源于:http://fisionsoft.com.cn/article/dpehhhc.html


咨詢
建站咨詢
