ES6学习(新特性简要提纲)
2023-12-13 17:14:57
前言
ES6准确的定义来说应该是ES2015,但是更多情况下,被广义的代表为ES5之后的所有版本。因为ES5到ES6这个版本的跨越很大,有非常多的新语法和api诞生,就像是1949年的中国,截止1949年都之前的都称为旧中国,1949年之后就是新中国。一个道理,就是一个里程碑的代名词而已。
新特性汇总
变量的命名方式let和const
避免var带来的一些问题
//es5
var a = 1
//es6
let b = 2
const c = 3
解构赋值
更为方便的取值
//数组
let [name,age,work] = ['wjt',28,'coder']
//对象
let {name,age} = {age:28,name:'wjt'}
模板字符串
字符串拼接的优化
let name = 'wjt'
let age = 28
//ES5
var str2 = '我叫'+str1+',我今年'+age+'岁'
//ES6
let str3 = `我叫${name},我今年${age}岁`
Symbol类型
通过Symbol函数命名,生成一个独一无二的值
let s1 = Symbol('wjt');
set容器
结构类似于数组,但是内部成员唯一不重复
const set = new Set([1, 2, 3, 4, 4]);
[...set]
// [1, 2, 3, 4]
Map容器
键值对映射的容器
const map = new Map([
['name', 'wjt'],
['age', 28]
]);
map.get('name') //'wjt'
map.get('age') // 28
元编程方法Proxy
可以实现对api本身重写,拦截,代理,意义重大
var proxy = new Proxy(target, handler);
Promise
专门用来处理异步编程的api
const promise = new Promise(function(resolve, reject) {
// ... some code
if (/* 异步操作成功 */){
resolve(value);
} else {
reject(error);
}
});
Iterator迭代器和for..of方法
访问各种结构数据的必要方法
const arr = ['red', 'green', 'blue'];
for(let v of arr) {
console.log(v); // red green blue
}
Generator
异步函数的解决方案
function* asyncJob() {
// ...其他代码
var f = yield readFile(fileA);
// ...其他代码
}
async await
Generator函数的语法糖
async function timeout(ms) {
await new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
class类
看上去更符合面向对象的一种语法糖,实则是构造函数的另一种写法
/**构造函数的语法*/
function Person(name,age){
this.name = name
this.age = age
}
Person.prototype.getString = function(){
return `${this.name}的年龄是${this.age}`
}
/**class的语法*/
class Person{
name = null
age = null
constructor(name,age){
this.name = name
this.age = age
}
getString(){
return `${this.name}的年龄是${this.age}`
}
}
module模块化
工程中必不可少的内容,导入导出文件暴露的数据和方法
其他
其他还有很多对原生对象属性的增强,比如正则,函数,数组,对象等方法的新增扩展,以及ArrayBuffer等。
文章来源:https://blog.csdn.net/m0_54741495/article/details/134971240
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!