1.非空断言操作符 !
let name:string = 'huxngxiaoguo'
let nus:string;
console.log(name.trim())
//非空断言操作符 ! 可以消除编辑器 当nus为undefined时候报错
//使用时注意 保证nus不为undefined,否则运行时会报错
console.log(nus!.trim())
export {};
2.空值合并运算符 ??
左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。
const foo = null ?? 'default string';
console.log(foo);
// expected output: "default string"
const baz = 0 ?? 42;
console.log(baz);
// expected output: 0
3.判断是否真正为真 !!
一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false;
意味着先将变量取反,并转化为布尔值
// 类似于下面的代码
if( a!=null && typeof(a)!=undefined && a!=''){
//a有内容才执行,也就是a不等于null、undefined或者空字符
}
// 可以改写成如下代码
if(!!a){
//a有内容才执行,也就是a不等于null、undefined或者空字符
}
// 或者也可以直接点
if(a){
//a有内容才执行,也就是a不等于null、undefined或者空字符
}
4.可选链运算符 ?.
也叫短路运算符,是一种先检查属性是否存在,在尝试访问该属性的运算符
const name = adventurer?.cat?.name