ES6语法糖,超甜!
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. ||
|| 只要属性的值为null或undefined或 空字符串 或 false或0,默认值会生效。这个使用场景不是很多,现在已经被??替代(只要是null或者undefined)
const a = b || c // 相当于 if(!b || b === '' || b === 0) a = c
参考
- https://www.cnblogs.com/zhigu/p/13962661.html
- https://blog.csdn.net/yc__coder/article/details/120431174
- https://es6.ruanyifeng.com/?search=链判断 (这个可以当参考书查)
To Be Continue!
ES6语法糖,超甜!的更多相关文章
- ES6 语法糖
重新认识ES6中的语法糖:https://segmentfault.com/a/1190000010159725
- es6语法糖
ES6为一些已有的功能提供了非破坏性更新,这类新语法能做的事情其实用ES5也可以做,只是会稍微复杂一些,称之为语法糖. 对象属性的简洁表示法 声明的对象中包含若干属性,其属性值由变量表示,且变量名和属 ...
- ES6语法糖集锦
sublime3安装Es6插件 javascriptNext,然后安装即可 JavaScriptNext - ES6 Syntax()高亮插件 -------------------------- ...
- 常用处理数据用法es6 语法糖总结
一 循环(数组 ,集合) 1 forEach-----------可以遍历得到vaue和index const arr = ['red', 'green', 'blue'];arr.forEa ...
- ES6深入浅出-3 三个点运算 & 新版字符串-1.函数与对象的语法糖
主要讲的内容 时间充裕的话就讲,模板字面量 默认参数值 首先讲es6之前,我们是怎么做的.例如我们要写一个求和的函数, 请两个参数的和,但是如果有的人就是穿一个参数呢? 那么b没有传值,b的值是多少呢 ...
- 语法糖----JAVA
语法糖 语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这种语法能使程序 ...
- ES6语法的新特性
ES6 就是ECMAScript 6是新版本JavaScript语言的标准.虽然目前已经更新到ES7,但是很多浏览器还不知处ES7语法,该标准仍在更新中,但目前部门网站都指出ES6的语法.目前ES6也 ...
- 详解es6 class语法糖中constructor方法和super的作用
大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5.由于类似的库层出不穷,最终还是在ECMAScript 6中 ...
- ES6之对象的语法糖
本文介绍下ES6中对象的一些拓展功能. 这三个语法糖在实际的项目开发中经常会见到.
- Java 中的语法糖,真甜。
我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan/bestJavaer 我们在日常开发中经常会使用到诸如泛型.自动拆箱和装箱 ...
随机推荐
- 浅聊web前端性能测试
最近正好在做web前端的性能测试,这次就来聊聊关于这个的测试思路~ 首先从用户的思维去思考,关于web前端性能,用户最看重的是什么...... 其实就是下面三个点: 1. 加载性能(即页面加载时间+资 ...
- 【Python】【爬虫】【爬狼】003_获取搜索结果的页数
# 获取搜索内容的页数 需要的包 import urllib.request # 获取网页源码 import re # 正则表达式,进行文字匹配 from bs4 import BeautifulSo ...
- 【Java高级编程】IO流学习笔记
目录 IO流 File类 文件/文件夹基础操作 创建文件的完整步骤 IO流 - 节点流 读入文件一个字节(一个字节) [FileInputStream]字节数组的方式读取(读取全部内容) [FileI ...
- 【Mybatis】学习笔记02:实现简单的查
Mybatis02:简单的查 如果你没先去学 增删改 ,然后直接看这篇记录,我想会有些困难.因为该文写的很粗劣,只是简单的截图.所以没基础的建议先去看 [Mybatis]学习笔记01:连接数据库,实现 ...
- 谈谈 HTTP/2 的协议协商机制
在过去的几个月里,我写了很多有关 HTTP/2 的文章,也做过好几场相关分享.我在向大家介绍 HTTP/2 的过程中,有一些问题经常会被问到.例如要部署 HTTP/2 一定要先升级到 HTTPS 么? ...
- HP 打印机驱动
HP Universal Print Driver Series for Windows https://support.hp.com/cn-zh/drivers/selfservice/hp-uni ...
- spark (四) RDD概念
目录 1. RDD基本概念 1.1 弹性 1.2 分布式 1.3 数据集 1.4 数据抽象 1.5 不可变 1.6 可分区.并行计算 2. WordCount为例,看RDD特性 3. RDD的五大属性 ...
- Appium_WebDriverAgent设置
在使用真机调试的时候犯了一个错误,我把WebDriverAgent 下载到本地的A目录下,然后进行build安装,这样在模拟器上执行是无法发现问题的,但是使用appium 在真机上执行 ...
- java解析CSV文件三种方法(openCSV)
一.简介1.pom.xml<!-- csv文件解析依赖 --><dependency> <groupId>com.opencsv</groupId> & ...
- SpringBoot实现人脸识别功能
一.人脸注册 step1:人像采集.在注册页面上用html中video组件和js调用笔记本摄像头,并抓取人像图片.没有摄像头的笔记本.台式机的童鞋告辞吧,走好不送... step2:人像上传至项目文件 ...