es6重要特性
· 阅读需 3 分钟
前言
语言学习看文档是非常无聊的,所以找来视频来学,并做了笔记。
模板语法
当返回一串比较复杂的字符串时,优先使用模板语法:
`${var1}, ${var2}`;
优点:模板所见即所得,即不需要敲换行、空格等占位符。
解构和扩展运算符
一切可迭代的数据类型(数组、对象等)都可以解构。解构出的是子元素。扩展运算府(三个点)也是将子元素拿出来放到一个新数据里。他们两个容易弄混:
解构:
let income = [10, 20, 30];
let [a,b,c]=income //a=10,b=20,c=30
扩展运算符:
let x=[...income] //x=[10,20,30]
看出差别了吧,解构是为了把数据取出来赋值给分散的新变量,而扩展运算符是把数据取出来包裹起来作为整体赋给一个变量。
对象字面量
如果对象的属性是从之前声明的变量获得的,那么在创建变量时,可以直接用变量来进行声明,而不需要写完整的键值对:
let name, age;
(name = "jason"), (age = 18);
let user = {
name,
age,
};
剩余操作符
"Rest operator" 可以翻译为 "剩余操作符" 或者 "剩余参数"。在 JavaScript 中,这个概念指的是使用三个点符号(...)来收集函数中的剩余参数,将它们组合成一个数组。
举个例子,假设有一个函数用来计算总和:
function sum(...numbers) {
return numbers.reduce((total, num) => total + num, 0);
}
console.log(sum(1, 2, 3, 4)); // 输出 10
let const
let/const 一直是 ES6 经久不衰的一个重要知识点。首先必须要知道,他俩为什么要发明出来取代 var。因为 var 有一个让人非常不爽的特点:变量提升。这是一个十分臭名昭著的特性,给 JavaScript 代码带来了很多 bug。所以 let、const 被提出,他俩就非常老实,只在自己的块级作用域内生效。也许 javascript 一开始就本该如此,谁知道创始人发了什么疯呢。
export import
见之前博文:javascript 模块系统
Class
见之前博文:面向对象编程及其在 javascript 中的实现
async/await promise
见之前博文:同步异步任务在 javascript 中的实现