当前位置: 首页 > news >正文

?.的用法

 使用场景:

undefined和null是两个比较特殊的数据类型,是不能用点操作符去访问属性的,否则将会报错。

  • 空值合并操作符??

使用 ?? 时用于提供默认值,只有当左侧表达式的结果为 null 或 undefined 时,才会返回右侧表达式的值。

// ??console.log(undefined ?? 2);  // 2console.log(null ?? 2);   // 2console.log(0 ?? 2);  // 0console.log("" ?? 2);   // ''console.log(true ?? 2);  // trueconsole.log(false ?? 2);   // false
  • 空值合并赋值操作符??=

用于在左侧操作数为 null 或 undefined 时,将右侧表达式的值赋给左侧操作数。 

  • 可选链操作符 ?. 

?. 允许读取连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。

?. 操作符的功能类似于. 链操作符,不同之处在于,在引用为空,即 null 或者 undefined 的情况时不会抛出异常,而是返回 undefined。

这个符号表示对象后面的属性可以是null或undefined。

来访问对象的属性和调用对象的方法。

  • 非空类型断言!. 

 !.  这是TypeScript的语法

!.  非空类型断言,表示确定某个标识符是有值的

这个符号表示对象后面的属性一定不是null或undefined。

  • 强制类型转换!!

用于将一个值转换为对应的布尔值(强制类型转换)

  • 逻辑非运算符!

逻辑非运算符,用于取反一个布尔值或将一个值转换为布尔类型并取反。

  • 或运算||

使用 || 时,A会先转化为布尔值判断,为true时返回A , false 返回B

// ||console.log(undefined || 2);   // 2console.log(null || 2);     // 2console.log(0 || 2);        // 2console.log("" || 2);     // 2console.log(true || 2);     // trueconsole.log(false || 2);      // 2

3、 

相关文章:

  • 如何在Linux环境搭建本地SVN服务器并结合cpolar实现公网访问
  • TCPDUMP抓包明确显示IP地址和端口号
  • Blender学习:荧光树桩
  • Affinity VS PS 2024最新功能详细对比?Affinity Photo与Photoshop比哪家强?
  • Unity中Shader指令优化(编译后指令解析)
  • 算法与数据结构(二十五)TopK问题:基于快排的Python模板
  • 使用正则表达式时-可能会导致性能下降的情况
  • 文字处理工具Word mac软件特点
  • 【LeeCode】438.找到字符串中所有字母异位词
  • Opencv获取笔记本摄像头
  • 知识点滴 - 什么是AECS-PRM
  • JVM中 Minor GC 和 Full GC 的区别
  • 【报名】2023产业区块链生态日暨 FISCO BCOS 开源六周年生态大会
  • centos用什么命令可查看版本号
  • 【西南交大swjtu微机与接口技术实验】D/A变换实验实验三:波形发生器
  • canvas 绘制双线技巧
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • CSS盒模型深入
  • CSS居中完全指南——构建CSS居中决策树
  • js写一个简单的选项卡
  • MobX
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • nfs客户端进程变D,延伸linux的lock
  • npx命令介绍
  • Python 基础起步 (十) 什么叫函数?
  • Redis在Web项目中的应用与实践
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 关于List、List?、ListObject的区别
  • 首页查询功能的一次实现过程
  • 说说动画卡顿的解决方案
  • 小试R空间处理新库sf
  • 自动记录MySQL慢查询快照脚本
  • 做一名精致的JavaScripter 01:JavaScript简介
  • gunicorn工作原理
  • linux 淘宝开源监控工具tsar
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #android不同版本废弃api,新api。
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • (10)ATF MMU转换表
  • (2015)JS ES6 必知的十个 特性
  • (BFS)hdoj2377-Bus Pass
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (差分)胡桃爱原石
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转)原始图像数据和PDF中的图像数据
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • ****Linux下Mysql的安装和配置
  • **PHP二维数组遍历时同时赋值
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl