js 中的非空断言操作符 (!.)叹号加点

js 中的非空断言操作符 (!.)叹号加点

在 TypeScript 或 JavaScript 中,!.并不是一个官方的语法结构。然而,!符号在 TypeScript 中确实有特定的用法,它被称为非空断言操作符。

!通常用作逻辑非操作符,用于将其后的布尔值取反。但是!.并没有定义为 JavaScript 的标准语法。如果您在某些特定环境或工具中看到了使用!.的代码,那可能是某种特定的代码风格或者扩展工具的功能,但并非 JavaScript 或 TypeScript 的标准特性。

(!.)常见用法

  • 示例 1
let input: HTMLInputElement | null = document.querySelector("input");
// 使用非空断言,告诉编译器input不为null
let inputValue: string = input!.value;

这里 input!表达了我们确信 input 不为 null,因此可以安全地访问.value 属性。如果不使用!,在 TypeScript 的严格模式下将会引发编译错误,因为 input 可能为 null。

  • 示例 2
function isString(s?: string) {
  return !!s;
}

function formatStr(str?: string): string {
  if (isString(str)) {
    return str!.toLowerCase();
  }
  return "";
}

str 经过函数校验后不可能是 undefined,我们可通过非空断言告知 TS。如下图:

在这里插入图片描述
在这里插入图片描述

  • 示例 3
function handler(arg: string | null | undefined) {
  let str: string = arg!; // 告诉编译工具,我这里没毛病
  str.substring(0, 2);
  // ...
}

!.用于告诉编译器,程序员确信某个表达式的结果一定不为 null 或 undefined,从而避免编译器的空值检查。

有疑问的同学可以私信我、对帮助到同学欢迎大家收藏评论。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值