当前位置: 代码网 > it编程>编程语言>Javascript > JavaScript中 ?、!和?? 的用法及区别详解

JavaScript中 ?、!和?? 的用法及区别详解

2024年11月03日 Javascript 我要评论
1. 可选链操作符 ?.用法: obj?.prop 或 obj?.[expr]功能: 当尝试访问一个深层嵌套的属性时,如果对象obj是null或undefined,使用?.操作符可以避免抛出错误,而是

1. 可选链操作符 ?.

用法: obj?.propobj?.[expr]

功能: 当尝试访问一个深层嵌套的属性时,如果对象objnullundefined,使用?.操作符可以避免抛出错误,而是直接返回undefined,而不是尝试访问不存在的属性导致的错误。

示例:

const user = null;
console.log(user?.name); // 输出 undefined 而不是抛出错误

2. 非空断言操作符 !.

用法: obj!.prop

功能: 这个操作符告诉typescript编译器你确定该表达式绝对不会为nullundefined,从而避免了类型检查时的警告。需要注意的是,这仅影响编译时的类型检查,并不会改变运行时的行为,因此如果实际上该表达式为nullundefined,依然会导致运行时错误。

示例: (此示例假设在typescript环境下)

let user: user | null = fetchuserdata();
console.log(user!.name); // 告诉typescript你确定user不是null或undefined

3. 空值合并操作符 ??

用法: value ?? fallback

功能:valuenullundefined时,返回fallback指定的值;否则,返回value本身。这与逻辑或||操作符不同,因为||会在value为任何假值(如0、false、空字符串等)时就返回fallback,而??只在value严格等于nullundefined时才进行替换。

示例:

let num = null;
const result = num ?? 42; // result为42,因为num是null

总结起来,?.帮助安全地访问对象属性,!.用于告诉typescript编译器忽略可能的nullundefined检查(使用时要确保安全),而??则是在值为nullundefined时提供一个替代值。

到此这篇关于javascript中 ?、!和?? 的用法及区别详解的文章就介绍到这了,更多相关javascript ?、!、??用法及区别内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com