ECMAScript6

来源:互联网 发布:国外免费linux服务器 编辑:程序博客网 时间:2024/04/30 18:24

开发环境

借助React的脚本转换器进行学习ES6
如何引入脚本转换器:传送门

部署后的开发环境

<script src="../js/browser.min.js"></script><script type="text/babel">    //这里是我们的ES6代码</script>

变量的声明方式

1.var
2.const
3.let(ES6新增的命令,用来声明变量)

变量的作用域

1.函数作用域, function(){}
2.块级作用域,{}

<script type="text/babel">    //这里是我们的ES6代码    //var声明的变量, 具有函数作用域    var arr = [1, 2, 3];    for (var i = 0; i < arr.length; i++) {}    console.log(arr[i]);//undefined</script>
<script type="text/babel">    //let声明的变量, 具有块级作用域,for循环使用let命令就很合适    for (let j = 0; j < 10; j++) {}    console.log(j);//error</script>

为了避免出现变量污染,解决方案:
立即执行匿名函数(IIFE, immediately-invoked function Expression)

<script type="text/babel">    var a = 100;    window.a = 100;    var a = 200;    window.a = 200;    (function () {        var a = 100;    }());    //而使用ES6中的let命令就可以很好的解决变量污染问题    {        let a = 100;    }</script>

let声明的变量, 在同一作用域下, 不允许重名

<script type="text/babel">    let a1 = 100;    let a1 = 101;    //报错,Duplicate declaration "a1",意思是重复声明变量a1</script>

let不像var那样会发生”变量提升”现象。
所以变量要在声明后使用,否则会报错

// var 的情况console.log(f); // 输出undefinedvar f = 2;// let 的情况console.log(kk); // 报错ReferenceErrorlet kk = 2;
0 0
原创粉丝点击