ES6常用命令与介绍

来源:互联网 发布:复制文件夹网络共享 编辑:程序博客网 时间:2024/05/15 00:13

ES6是2015年推出的,非常不错的,目的是用js能有“规格”写大型项目,所以很有必要学习。

let和const命令

const是定义常量,若定义了不能再改变,若改变则会报错。也存在可以改的情况,那就是const定义一个对象,我们修改对象里面的属性。
let是定义变量,和var有什么区别?请看下面

什么叫变量提升:举例一个小demo

<div id="log" class="log"></div>  <script>    console.log("a" + a);    var a = 1;    console.log("b" + b);    let b = 2    function printlog(str) {      document.getElementById('log').innerText = str;    }  </script>

打印出来:
这里写图片描述
为什么a undefined,而b is not defind,var有变量提升的作用,意思就是把var定义的变量提升到第一行,所以打印出来就是有a了。var,function均可以变量提升。
将上述代码整理使用模板语言,什么是模板语言
因为他很方便不需要组装

<div id="log" class="log"></div><script>// 这个里面就是填写``模板语言,可正常打印,可自动换行,效果可以自行张贴查看    var sat = `    console.log("a" + a);    var a = 1;    console.log("b" + b);    let b = 2      `    printlog(sat);    function printlog(str) {        document.getElementById('log').innerText = str;    }</script>

总结:在实际开发尽量用let定义,好处是,let是块作用域(局部作用域),var定义会存在内存泄露,经常在实际开发中用var定义a,而a之前有定义,就存在未销毁情况,let定义变量会及时销毁

箭头函数

    var arr=[3,6,9];    var newarr=arr.map(function (item){        return item +2;    })    //下面是箭头函数表示上述的意思    var newarr=arr.map((item)=>item+2);//函数代码大于两行则需要使用大括号

经常用箭头函数的好处是:代码会更清晰,代码量也会减少,强烈推荐使用箭头函数,确实很方便。当然有个重要的好处是this的使用,若在函数内的this是指向当前对象,而不是外部的this。若使用箭头函数,里面和外面的this会保持一致

字符串、对象、数组和函数的解构

//数组解构:一一对应,var [a,b,c]=[1,2,3];//字符串解构:一一对应,var [a,b,c]="ABC";//对象解构:一一对应,var {m,n}={m:10,n:20};//函数解构:    function sum([x,y]){        return x+y;    }    sum([2,8]);

Rest参数

三个点的介绍

    //...点代表不确定传入多少个参数    let sum001 = (...m) => {      let total = 0;      for (var i of m) {        total += i;      }      console.log(`total:${total}`);    }    sum3(4, 8, 9, 10);//    //...点和数组结合称函数的拓展,将4,8进行拆解    console.log(...[4, 8]);    //x为4,y为8,10,30数组    var [x, ...y] = [4, 8, 10, 30];    let [a, b, c] = "ES6";

模块化开发方案:AMD、CMD、CommonJs和ES6对比

AMD是RequireJS在推广过程中对模块的定义的规范化产出。依赖前置,异步模块定义。
CMD是SeaJS(淘宝官方提供)在推广过程中对模块定义规范化产出,没有依赖前置,依赖就近,同步的意思,即用即返回
CommonJs module.exports规范,使用在node开发推荐的(服务端)。
ES6特性exprot/import,导出才能导入

未完待续。。。