欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ES6的var和let的区别

程序员文章站 2022-06-11 22:13:45
...
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <!-- 
        var的缺点: 
        1,可以重复声明
        2,无法限制它的修改(没有常量的语言)
        3,没有块级作用域

        ES6新的定义变量方式

        let的优点‘
        1,不能重复声明
        2,可以修改
        3,有块级作用域


        const:
        1,不能重复声明
        2,不能修改
        3,有块级作用域


        ES6的箭头函数
        ()+>{

        }

         es:
        let show=function(){

        }

        let show=()=>{

        }
        1,如果只有一个参数,()可以省
        es:
        let show=(a)=> 可以写成 let show=a=>
        2,如果只有一个return,{}可以省

        函数的参数
        1,参数的扩展/展开
        2,默认参数

        参数扩展
        1,收集剩余的参数
        function show(a,b,...args){}
        *Rest Parameter必须是最后一个

        2,展开数组
        展开后的效果,跟直接把数组的内容写在里面一样

        默认参数
        

     -->
     <input type="button" value="按钮1">
     <input type="button" value="按钮1">
     <input type="button" value="按钮1">
</body>
<script>
    window.onload=function()
    {
        var btn=document.getElementsByTagName("input");

        // 块级作用域问题


        // 1,错误写法
        // for(var i=0;i<btn.length;i++)
        // {
        //     btn.onclick=function(){
        //         alert(i);
        //     }
        // }

        // 2,正确写法
        // for(var i=0;i<btn.length;i++){
        //   (function(i){
        //       btn[i].onclick=function(){
        //           alert(i);
        //       };
        //   })(i);
        // };

        for(let i=0;i<btn.length;i++)
        {
            btn[i].onclick=function(){
                alert(i);
            }
        }
    }
</script>
</html>