一.ES6新特性

 

1.1了解ES6

现在使用主流的前端框架中,如react.js、vue.js、angular.js等,都会使用到ES6的新特性。ES6是ECMAScript6的简称,它是JavaScript语言的下一代标准,它的目标是使JavaScript语言可以用于编写复杂的大型应用程序,成为企业级开发语言。

1.2 let和const

之前我们使用的var作用范围比较广,例如:下面的 i 会输出5

let:把变量的作用域控制到了代码块中;

const:定义的是一个常量,不可以修改;

1.2字符串扩展

includes():返回布尔值,表示是否找到了参数字符串;

startsWith():返回布尔值,表示参数字符串是否在原字符串的头部;

endsWith():返回布尔值,表示参数字符串是否在原字符串尾部;

··

ES6中提供了·(键盘中1左边的点)来作为模板标记,在两个··之间的部分被作为字符串的值,可任意换行;

1.3解构表达式

ES6中允许安照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称为解构。

1.3.1数组解构

1.3.2对象解构

1.4函数优化

1.4.1函数参数默认值

1.4.2箭头函数

1.4.3对象函数属性的简写

1.4.4箭头函数结合解构表达式

1.5 map和reduce

1.5.1 map()

接收一个函数,将原数组中的所有元素用这个函数处理后放入到新的数组返回

例如,将原数组转为int数组

1.5.2 reduce()

接收一个函数(必须)和一个初始值,第一个参数为上一次reduce处理的结果,第二个参数为数组中要处理的下一个元素

1.6 扩展运算符

扩展运算符(spread)是三个点(...),将一个数组转换为用逗号分隔的参数序列。

1.7 promise

所谓promise,简单说就是个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果,从语法上,promise是一个对象,它可以获取异步操作的消息。promise提供统一的API,各种异步操作都可以用同样的方法进行处理。

我们可以通过promise的构造函数来创建promise对象,并在内部封装一个异步执行的结果。

语法:

这样,在promise中就封装了一段异步执行的结果。

如果,我们想要等待异步执行完成,做一些事情,我们可以通过promise的then方法来实现

语法:

如果想要处理promise异步执行失败的事件,还可跟上catch:

举例:

1.8 set 和 map

1.8.1 set

set 数据容器 能够存储无重复值数据的有序列表

1.8.2 map

ES6中提供了Map数据结构,能够存放键值对,其中,键的去重是通过Object.is()方法进行比较,键的数据类型可以是基本类型数据也可以是对象,而值也可以是任意类型数据。

1.9 class(类)的基本语法

JavaScript语言传统方法是通过构造函数定义并生成新对象。ES6中引入了class的概念,通过class关键字自定义类。

基本语法:

类的继承:

1.10 Generator函数

generator函数是ES6提供的一种异步编程解决方案,其有两个特征,一是function命令与函数名之间有个星号,二是函数体内部使用yield语句定义不同的内部状态。

1.10.1 for .... of循环

通过for....of..可以遍历Generator函数返回的迭代器。

1.11 修饰器(Decorator)

修饰器(decorator)是一个函数,用来修改类的行为。 

1.12 转码器

*  Babel(babeljs.io)是一个广为使用的ES6转码器,可以将ES6代码转为ES5代码,从而在浏览器或其他环境执行。

* Google公司的Traceur转码器,也可将ES6代码转为ES5代码

这两款转码工具,我们不直接使用,而是使用阿里的开源框架react: Umijs(乌米)

1.12.1 了解Umijs

官网:https://umijs.org/zh/

特点:

插件化:umi的整个生命周期都是插件化的。

开箱即用:你只要umi依赖就可开启开发。

约定试路由:类next.js的约定试路由,无需再维护一份冗余的路由配置,支持权限、动态路由、嵌套路由等等。

1.12.2 部署安装

#首先需要安装node.js

#下载node-XXXXX64.msi,一路下一步

#安装完成后 node -v   查看版本号

 

#接下来暗转yarn,其中tyarn是淘宝的源,速度要快一些

npm i yarn tyarn -g   #-g是全局的意思

tyarn -v #查看版本

#如果失败,可能是yarn添加环境变量导致,http://www.easysb.cn/index.php/2017/06/04/11

 

#安装umi

tyarn global add umi

#如果报错,进行这个设置之后,会正常。 原理等待补充 

# yarn config set ignore-engines true

 

# windows系统:

# 获取 global bin 的路径

yarn global bin

C:\Users\Administrator\AppData\Local\Yarn\bin # 复制上面的 global bin 的路径,添加到系统环境变量 PATH。

umi  #测试

1.12.3 快速入门

#通过初始化命令将生成package.json文件,它是nodeJS约定用来存放项目信息和配置信息的文件

tyarn init -y

 

#通过umi命令创建index.js文件

umi g page index   #可以看到pages下面穿件index.cdd和index.js文件

 

测试(将下面代码放入index.js中)

@T
class User{constructor(name,age = 20){this.name = name;this.age = age;}
}function T(target) {console.log(target);target.contry = "中古";
}console.log(User.contry);

#通过命令启动

umi dev

#值得注意的是,这里访问的是umi后台服务器,不是idea提供的。

1.13 模块化

模块化就是把代码拆分,方便重复利用。类似java中的导包,要使用一个包,必须先导包。而JS中没有包的概念,换来的是模块,模块功能主要是由两个命令构成:exportimport

export:命令用于规定模块的对外接口;

import:命令用于导入其他模块提供的功能;

1.13.1 export

1.13.2import

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部