JavaScript 进阶营

ES6变量特性

2020-03-15  本文已影响0人  番茄向前看

声明

var:能重复声明,不能限制修改,函数级作用域 如function;
let:不能重复声明,变量 限制修改,块级作用域 如:{ }
const:不能重复声明,常量 限制修改,块级作用域 如:{ }

// 在全局与函数show中,分别使用var声明。导致全局的 a被修改        var a = 1;
        let b = 2;
        let c = 3;
        function show() {
            var a = 2;
            console.log(a);
            console.log(b);
            console.log(c);
            alert(a);
        }
        show()
    </script>

块级作用域

<script>
    window.onload = function () {
        let varBtn = document.getElementsByTagName('input');
        let letBtn = document.getElementsByTagName('button');

        //闭包解决办法,如果不用此方法,就无法出现逐个弹出input的值  
        for (var i = 0; i < varBtn.length; i++) {
            (function (i) {
                varBtn[i].onclick = function () {
                    alert(i)
                }
            })(i);
        }

        //使用let可以简单解决,无法逐个弹出input的值问题  
        for (let l = 0; l < letBtn.length; l++) {
            letBtn[l].onclick = function () {
                alert(l)
            }
        }
    }
</script>

解构赋值

<script>
//1、两边结构一样(JSON命名还要一样)
//2、右侧数据格式正确
//3、结构与赋值同时完成(不能换行)
    let jsonData = { id: 2, status: "ok", arr: [1, 2, 3] };
    let { id, status, arr: number } = jsonData;
    console.log(id, status, number);

    arr = [1, 2, 3]
    let [c, b, a] = arr;
    console.log("arr数组格式" + a + b + c);
</script>
上一篇 下一篇

猜你喜欢

热点阅读