ES6 语法糖

1. ...

... 表示取出可遍历数组中的内容。

const arr = new Array()
const numbers = [1,2,3,4,5]
arr.push(...numbers)// arr内容:1 2 3 4 5,即将numbers的内容挨个取出然后push到arr中

据说,ES7中可以拿来遍历对象

2. ??

?? 是空值合并操作符,按照第一个取值,如果第一个是空的,就取第二个。

const str
const content = str ?? "str 内容为空" // 相当于 const content = str? str : "str 内容为空"

注意:只对 null 和 undefined 敏感

3. ?.

?.是可选链操作符,功能等同于.但是不会在引用为null或undefined时报错。当需要做判定时很有用,少写很啰嗦的代码,还很自然

为了保证兼容以前的代码,允许foo?.3:0被解析成foo ? .3 : 0,因此规定如果?.后面紧跟一个十进制数字,那么?.不再被看成是一个完整的运算符,而会按照三元运算符进行处理,也就是说,那个小数点会归属于后面的十进制数字,形成一个小数。

class Media{
constructor(fileName, content, duration){
this.fileName = fileName
this.content = content
this.duration = duration
}
} const media
const fileName = media.?fileName // 相当于 const fileName = media? media.fileName : undefined a?.b
// 等同于
a == null ? undefined : a.b a?.[x]
// 等同于
a == null ? undefined : a[x] a?.b()
// 等同于
a == null ? undefined : a.b() // 若a中存在b,但是b不是方法,会报错 a?.()
// 等同于
a == null ? undefined : a() // 若a不是方法,会报错


2023年1月13日 14点34分

4. **

**表示指数运算符,多个连用时注意右结合

2 ** 2 // 4,2的平方

2 ** 3 ** 4 // 指的是 2 ** (3 ** 4)

5. ||

|| 只要属性的值为nullundefined或 空字符串 或 false0,默认值会生效。这个使用场景不是很多,现在已经被??替代(只要是null或者undefined

const a = b || c // 相当于 if(!b || b === '' || b === 0) a = c

参考

  1. https://www.cnblogs.com/zhigu/p/13962661.html
  2. https://blog.csdn.net/yc__coder/article/details/120431174
  3. https://es6.ruanyifeng.com/?search=链判断 (这个可以当参考书查)

To Be Continue!

ES6语法糖,超甜!的更多相关文章

  1. ES6 语法糖

    重新认识ES6中的语法糖:https://segmentfault.com/a/1190000010159725

  2. es6语法糖

    ES6为一些已有的功能提供了非破坏性更新,这类新语法能做的事情其实用ES5也可以做,只是会稍微复杂一些,称之为语法糖. 对象属性的简洁表示法 声明的对象中包含若干属性,其属性值由变量表示,且变量名和属 ...

  3. ES6语法糖集锦

    sublime3安装Es6插件 javascriptNext,然后安装即可 Java​Script​Next - ES6 Syntax()高亮插件 -------------------------- ...

  4. 常用处理数据用法es6 语法糖总结

    一 循环(数组 ,集合)   1 forEach-----------可以遍历得到vaue和index   const arr = ['red', 'green', 'blue'];arr.forEa ...

  5. ES6深入浅出-3 三个点运算 & 新版字符串-1.函数与对象的语法糖

    主要讲的内容 时间充裕的话就讲,模板字面量 默认参数值 首先讲es6之前,我们是怎么做的.例如我们要写一个求和的函数, 请两个参数的和,但是如果有的人就是穿一个参数呢? 那么b没有传值,b的值是多少呢 ...

  6. 语法糖----JAVA

    语法糖 语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这种语法能使程序 ...

  7. ES6语法的新特性

    ES6 就是ECMAScript 6是新版本JavaScript语言的标准.虽然目前已经更新到ES7,但是很多浏览器还不知处ES7语法,该标准仍在更新中,但目前部门网站都指出ES6的语法.目前ES6也 ...

  8. 详解es6 class语法糖中constructor方法和super的作用

    大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5.由于类似的库层出不穷,最终还是在ECMAScript 6中 ...

  9. ES6之对象的语法糖

    本文介绍下ES6中对象的一些拓展功能. 这三个语法糖在实际的项目开发中经常会见到.

  10. Java 中的语法糖,真甜。

    我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan/bestJavaer 我们在日常开发中经常会使用到诸如泛型.自动拆箱和装箱 ...

随机推荐

  1. YashanDB V23.3重磅发布,持续深化1:1替代产品力

    11月14日,YashanDB在"2024国产数据库创新生态大会"上正式发布YashanDB V23.3版本,定位为面向企业核心的通用数据库,具备1:1替代Oracle的能力. 当 ...

  2. 从Delphi到Lazarus——Delphi转换器

    0.前言 在Lazarus中使用Delphi编写的文件是一件很简单的事情,这是因为Lazarus可以直接打开Delphi的任何文件,甚至有些文件可以不做任何修改就可以直接使用到你的Lazarus程序中 ...

  3. 使用腾讯云对象存储 COS 作为 Velero 后端存储,实现集群资源备份和还原

    Velero(以前称为 Heptio Ark)是一个开源工具,可以安全地备份和还原,执行灾难恢复以及迁移 Kubernetes 集群资源和持久卷,可以在 TKE 集群或自建 Kubenetes 集群中 ...

  4. 【XML】Java创建XML文档

    package example01; import org.w3c.dom.Document; import org.w3c.dom.Element; import javax.xml.parsers ...

  5. 【Javaweb】【答卷】萌狼蓝天大二上学期期末Javaweb考试复习卷(一)

  6. 4.4 服务器上的 Git - 配置服务器

    配置服务器 我们来看看如何配置服务器端的 SSH 访问. 本例中,我们将使用 authorized_keys 方法来对用户进行认证. 同时我们假设你使用的操作系统是标准的 Linux 发行版,比如 U ...

  7. 解决docker 容器设置中文语言包出现的问题_docker

    https://www.anquanclub.cn/5821.html 这篇文章主要介绍了解决docker 容器设置中文语言包出现的问题,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 ...

  8. MessageConsumer

    @Slf4j @Component public class MessageConsumer { @Autowired private PpcRequestMessageListener ppcReq ...

  9. Qt/C++编写的Onvif调试助手调试神器工具/支持云台控制/预置位设置等/有手机版本

    一.功能特点 广播搜索设备,支持IPC和NVR,依次返回. 可选择不同的网卡IP进行对应网段设备的搜索. 依次获取Onvif地址.Media地址.Profile文件.Rtsp地址. 可对指定的Prof ...

  10. Qt编写地图综合应用26-覆盖物交互

    一.前言 百度地图本身提供了非常友好完善的JS函数接口用于添加各种覆盖物,比如标注点.矩形区域.圆形区域.不规则线段.弧形等,基本上涵盖了各种应用场景,官方的文档和示例也是比较完善的,虽然示例用的都是 ...