ts ? ?? !!
时间: 2024-01-19 09:18:46 浏览: 33
以下是对ts中的可选链操作符(?.)、空值合并操作符(??)和逻辑非操作符(!!)的介绍和示例:
1. 可选链操作符(?.):
可选链操作符(?.)用于访问可能为null或undefined的属性或方法,如果属性或方法存在,则返回其值,否则返回undefined。它可以避免在访问可能为空的属性或方法时出现错误。
示例:
```typescript
const data = { items: [1, 2, 3] };
console.log(data?.items?.[1]); // 输出: 2
console.log(data?.items?.[5]); // 输出: undefined,因为索引 5 不存在
```
2. 空值合并操作符(??):
空值合并操作符(??)用于在变量为null或undefined时提供默认值。如果变量为null或undefined,则返回默认值,否则返回变量的值。
示例:
```typescript
const value1 = null;
const value2 = undefined;
const value3 = 0;
console.log(value1 ?? 'default value'); // 输出: 'default value'
console.log(value2 ?? 'default value'); // 输出: 'default value'
console.log(value3 ?? 'default value'); // 输出: 0,因为value3不为null或undefined
```
3. 逻辑非操作符(!!):
逻辑非操作符(!!)用于将一个值转换为布尔类型。它会将一个值转换为其对应的布尔值,如果值为假值(如false、0、空字符串、null、undefined等),则返回false,否则返回true。
示例:
```typescript
const value1 = 0;
const value2 = '';
const value3 = null;
const value4 = undefined;
const value5 = 'hello';
console.log(!!value1); // 输出: false
console.log(!!value2); // 输出: false
console.log(!!value3); // 输出: false
console.log(!!value4); // 输出: false
console.log(!!value5); // 输出: true
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)