ES6变量

JS的变量申明

var

  • 可以重复声明
  • 无法限制修改,即常量
  • 没有块级作用域{}

ES6的变量申明

let

  • 不能重复声明
  • 变量——可以修改
  • 只在块级作用域内有效

const

  • 不能重复声明
  • 常量——不能修改
  • 只在块级作用域内有效

闭包

  • 简单说,就是能够读取其他函数内部变量的函数
  • 函数执行的时候分配栈,执行结束后会回收栈(GC——垃圾回收)
  • 在JS里面
    • 底层:栈
    • 高层:把函数当作对象处理
    • 闭包——不会回收栈
<script>
    window.onload=function(){
        var aBtn=document.getElementsByTagName('input');
        //闭包
        //var 没有块级作用域
        for(var i=0;i<aBtn.length;i++){
            (function (i){
                aBtn[i].onclick=function(){
                    alert(i);
                }
            })(i);
        }
        //let 有块级作用域
        for(let i=0;i<aBtn.length;i++){
            aBtn[i].onclick=function(){
                alert(i);
            }
        }
    }
</script>

<body>
    <input type="button" value="按钮1"/>
    <input type="button" value="按钮2"/>
    <input type="button" value="按钮3"/>
</body>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容