JavaScript的ES6有哪些新知识需要我们去学习
通过学习微信小程序开发的基础知识后,又用了一周的时间来学习开发硅谷云音乐微信小程序的项目,在小程序项目实战的课程里面看到老师使用了大量的 ES6 的语法知识,有些高级的 JavaScript 写法还是让我看的有点摸不着头脑,私下自己抽时间又去学习了一下 ES6 的语法知识,下面就来给大家总结一下我们经常会用到的这些 ES6 的新知识。
介绍
ECMAScript6.0(简称 ES6),是JavaScript语言的下一代标准,目的是为了让JavaScript能够编写复杂的大型应用,成为企业级的开发语言。本编文章我们主要从它的新特性变量,字符串,数组,面向对象,Promise等这几个方面来学习。
变量
let:新增的声明变量关键字,不能重复声明,属于块级作用域,可以修改变量值。
const:新增的声明变量关键字,不能重复声明,属于块级作用域,不能修改的常量值。
var:这是我们在JS中经常用到的声明变量方式,可以重复声明,属于函数级作用域,不能限制它的修改。
{
let a = 1;
const b = 2;
var c = 3;
}
consloe.log(a); // 输出:Uncaught ReferenceError: a is not defined
console.log(b); // 输出: 1,外部默认值
console.log(c); // 输出: 3
字符串
模板字符串:可以使用反引号(``)标识,可以当作普通字符串使用,也可以定义多行字符串,还可以在字符串中签入变量(${var})。
字符串遍历:为字符串添加了遍历器接口,可以用for...of循环遍历字符串。
// 字符串模板
let str1 = `Hello World`;
let str2 = `Hello
World`;
let str3 = `第一个${str1}`;
console.log(str1); // 输出:Hello World
console.log(str2); // 输出:Hello World (换行)
console.log(str3); // 输出:第一个Hello World
// 字符串循环
let str4 = 'abc';
for(let str of str1){
console.log(str); // 输出:a b c (换行)
}
数组
扩展运算符:使用三个点(...),是将一个数组转为用逗号分隔的参数序列,主要用于函数调用。
扩展运算符主要应用复制数组,合并数组,字符串转数组等
let arr = [1,2,3];
console.log(...arr); // 输出:1 2 3
const a1 = [1, 2];
const a2 = [...a1];
console.log(a2); // 输出:[1,2]
const a3 = [1, 2];
const a4 = [3, 4];
const a5 = [...a3,...a4];
console.log(a5); // 输出:[1,2,3,4]
数组常用方法:
Array.from(),将两类对象转换为真正的数组
Array.of(),一组值转换为数组
copyWithin(target,start,end),将指定位置的成员复制到其它位置,如:[1,2,3].copyWithin(0,2) // [3,2,3]
find(),找出第一个符合条件的数组成员,参数为回调函数,如:[1,2,3].find(n=>n>1) // 2
findIndex(),返回第一个符合条件的数组成员的位置索引,如:[1,2,3].findIndex(n=>n>1) // 1
includes(),返回布尔值,表示某个数组是否包含给定的值,如:[1,2,3].includes(1) // true
箭头函数
使用箭头(=>)定义函数,箭头函数的 this 指向对象。
语法:(参数1, 参数2, …, 参数N) => { 函数声明 }
var fun = () => {
console.log('没有参数的函数');
}
解构赋值
解构是指从数组和对象中提取值,对变量进行赋值。
let [a, b, c] = [1, 2, 3];
console.log(a + " " +b + " " +c) // 输出: 1 2 3
let [x, y = 'b'] = ['a'];
console.log(x + " " + y); // 输出:a b
函数
可以为函数的参数指定默认值
function foo(x = 1, y = 2) {
console.log(x, y);
}
foo(undefined, null); // 输出:1 null
Promise对象
Promise 是异步编程的一种解决方案,解决异步回调。它代表未来将要发生的事件,可以获取异步操作的消息。
Promise 对象三种状态:
pending 初始化状态
fulfilled 成功状态
rejected 失败状态
const promise = new Promise(function(resolve, reject) {
// ... some code
if (/* 异步操作成功 */){
resolve(value);
} else {
reject(error);
}
});
// 调用
promise.then(function(value) {
// 成功
}, function(error) {
// 失败
});
- 点赞
- 收藏
- 关注作者
评论(0)