JavaScript的ES6有哪些新知识需要我们去学习

举报
zekelove 发表于 2021/08/14 20:09:28 2021/08/14
【摘要】 本篇文章主要是让大家学习一下 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) {
  // 失败
});

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。