📜  解释 null 的概念及其在 TypeScript 中的用法

📅  最后修改于: 2022-05-13 01:56:14.279000             🧑  作者: Mango

解释 null 的概念及其在 TypeScript 中的用法

Null 指的是空值或不存在的值。这是故意的,这里没有价值。默认情况下,TypeScript 不会使变量为 null。默认情况下,未分配的变量或未经初始化就声明的变量是“未定义的”。要使变量为 null,我们必须将 Null 分配给它。简而言之,Typescript 使用 null 来表示没有值或没有分配给它们的值的变量。有时,在编写大量代码时,可能会犯此类错误,并可能导致不必要的错误。

示例 1:将 null 分配给值

Javascript
let str: string;
 
// Prints undefined
console.log(str);
 
// Assigning 'null' to variable
str = null;
console.log(str);


Javascript
let num1: null;
num1 = null;
 
// Displays null
console.log(num1);
 
num1 = undefined;
 
// Displays undefined
console.log(num1);
 
num1 = 20;
// Raises error in timescript compiler
console.log(num1);


Javascript
let var1: undefined;
 
// Assigning null to undefined type variable
var1 = null;
console.log(var1);


Javascript
let variable: null;
variable = null;
 
// Returns object
console.log(typeof variable);
 
// True
console.log(variable == null);
 
// True
console.log(variable == undefined);
 
// True
console.log(null == undefined);
 
// False
console.log(variable === undefined);
 
// False
console.log(null === undefined);


输出:

undefined
null

示例 2:我们不能将其他类型的值赋给 null 类型的变量(null 和 undefined 除外)。

我们不能将其他类型的值分配给声明为空类型的变量。只能分配 null 和 undefined 。

Javascript

let num1: null;
num1 = null;
 
// Displays null
console.log(num1);
 
num1 = undefined;
 
// Displays undefined
console.log(num1);
 
num1 = 20;
// Raises error in timescript compiler
console.log(num1);


输出:打字稿编译器中的输出:

error TS2322: Type '20' is not assignable to type 'null'.
    num1 = 20;
    ~~~~

执行js文件后输出:

null
undefined
20

不能将 null 分配给未定义的类型变量:

Javascript

let var1: undefined;
 
// Assigning null to undefined type variable
var1 = null;
console.log(var1);

输出:

Type 'null' is not assignable to type 'undefined'.ts(2322)

示例 3:检查变量是否为 Null

由于 typeof运算符返回一个对象,因此不能使用它来检查 null。因此,您可以使用 ==(等于运算符)或 ===(等于运算符)运算符(严格等于运算符)。

在下面的代码中,我们可以看到 typeof运算符返回一个对象。当使用 '==' (等于运算符)检查时,它在变量 == null 时返回 true,但在 null==undefined 时也返回 true。但是当我们使用严格的等号运算符时,当 null 与 undefined 进行比较时,会返回“false”。

Javascript

let variable: null;
variable = null;
 
// Returns object
console.log(typeof variable);
 
// True
console.log(variable == null);
 
// True
console.log(variable == undefined);
 
// True
console.log(null == undefined);
 
// False
console.log(variable === undefined);
 
// False
console.log(null === undefined);


输出:

object
true
true
true
false
false

如果我们想在我们的代码中避免空值,我们可以使用 if 循环来检查。

if (variable !=null){}

参考: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-0.html#null–and-undefined-aware-types