ECMAScript6
1 1、开发环境搭建 2 1) 版本控制工具 3 svn 和 git 4 5 2) 下载安装 nodeJS 和 npm 6 7 3) 在开发工具 (Hbuilder) 中配置 cmd 终端,通过终端安装 Babel 编译器 8 1.初始化项目 9 在安装Babel之前,需要用npm init先初始化我们的项目。打开终端或者通过cmd打开命令行工具,进入项目目录,输入下边的命令: 10 1 npm init -y 11 -y代表全部默认同意,就不用一次次按回车了。命令执行完成后,会在项目根目录下生产package.json文件。 12 { 13 "name": "es6", 14 "version": "1.0.0", 15 "description": "", 16 "main": "index.js", 17 "scripts": { 18 "test": "echo \"Error: no test specified\" && exit 1" 19 }, 20 "keywords": [], 21 "author": "", 22 "license": "ISC" 23 } 24 可以根据自己的需要进行修改,比如我们修改name的值。 25 26 2.全局安装 Babel-cli 27 在终端中输入以下命令,如果你安装很慢的话,可以使用淘宝镜像的cnpm来进行安装。 28 1 npm install -g babel-cli 29 注:安装时有 "npm ERR! Windows_NT 6.1.7601" 报错情况别急可如下处理: 30 方法一: 31 1、关闭npm的https 32 npm config set strict-ssl false 33 2、设置npm的获取地址 34 npm config set registry "http://registry.npmjs.org/" 35 方法二: 36 还在获取中 37 安装好 Babel-cli 后可以通过 "babel 编译文件的js路径 -o 引入文件的js路径" 命令来生成引入文件中的 js ,但此时的 js 文件还是没有被编译,还是使用了 ES6 的语法,此时我们还需要安装转化宝才能成功转换 38 39 3.本地安装 babel-preset-es2015 和 babel-cli 40 1 npm install --save-dev babel-preset-es2015 babel-cli 41 安装完成后,我们可以看一下我们的package.json文件,已经多了devDependencies选项。 42 "devDependencies": { 43 "babel-cli": "^6.24.1", 44 "babel-preset-es2015": "^6.24.1" 45 } 46 47 4.新建 .babelrc 文件 48 在根目录下新建.babelrc文件,并打开录入下面的代码 49 { 50 "presets":[ 51 "es2015" 52 ], 53 "plugins":[] 54 } 55 这个文件建立完成后,我们就可以在终端输入 "babel src/index.js -o dist/index.js" 转化命令将 ES6 转化为 ES5 语法 56 57 5.简化转化命令 58 在学习vue 的时候,可以使用 npm run build 直接利用 webpack 进行打包,在这里也希望利用这种方式完成转换。打开package.json文件,把文件修改成下面的样子。 59 { 60 "name": "es6", 61 "version": "1.0.0", 62 "description": "", 63 "main": "index.js", 64 "scripts": { 65 "test": "echo \"Error: no test specified\" && exit 1" 66 }, 67 "keywords": [], 68 "author": "", 69 "license": "ISC", 70 "devDependencies": { 71 "babel-cli": "^6.26.0", 72 "babel-preset-es2015": "^6.24.1" 73 } 74 } 75 修改好后,以后我们就可以直接使用 npm run build 来进行转换了。 76 77 2、变量 78 var 重复声明、函数级 79 let 不能重复声明、块级、变量 80 const 不能重复声明、块级、常量 81 82 箭头函数 83 1、如果只有一个参数, ()可以省 84 2、如果只有一个return, {}可以省 85 86 3、解构赋值 87 1.数组的结构赋值 88 一 一对应原则,左右两边不统一会报错 89 注:undefined 和 null 的区别 90 91 let [a,b="JSPang"]=['技术胖',undefined]; 92 console.log(a+b); //控制台显示“技术胖JSPang” 93 undefined相当于什么都没有,b是默认值。 94 95 let [a,b="JSPang"]=['技术胖',null]; 96 console.log(a+b); //控制台显示“技术胖null” 97 null相当于有值,但值为null。所以b并没有取默认值,而是解构成了null。 98 99 2.对象的结构赋值 100 对象是根据属性名来确定取值的 101 注:圆括号的使用 102 let foo; 103 ({foo} ={foo:'JSPang'}); //不加圆括号会报错 104 console.log(foo); //控制台输出jspang 105 106 3.字符串结构赋值 107 const [a, b, c, d] = "wang"; 108 console.log(a); 109 console.log(b); 110 console.log(c); 111 console.log(d); 112 113 4、扩展运算符和 rest 运算符 114 function wang(…args){ 115 console.log(args[0]); 116 console.log(args[1]); 117 console.log(args[2]); 118 console.log(args[3]); 119 } 120 wang(1,2,3); 121 122 5、字符串模板 123 字符串查找/判断是否存在 124 indexOf() 返回索引值 125 includes() 返回布尔值 126 startsWith() 判断开头是否存在 127 endsWith() 判断开头是否存在 128 129 6、ES6数字操作 130 //二进制声明 Binary 131 let binary = 0B010101; 132 console.log(binary);//21 133 134 //八进制声明 Octal 135 let octal = 0o666; 136 console.log(octal);//438 137 138 Number 对象