part2:let,const,var 案例

2022-01-26  本文已影响0人  娇娇_5038

1-1

1.1.1

for(var i=0;i<10;i++){

 }

 console.log(i);//可以访问

1.1.2 

for(let j=0;j<10;j++){

}

console.log(j)//会报错 j不存在

1.1.3

  var funcs=[];

        for(var i=0;i<10;i++){

            funcs.push(()=>{

                console.log(i)

            })

        }

        console.log(funcs)

        funcs.forEach((fun)=>{

            fun();//输出10个10

        })

修改

1-3-1

 var funcs=[];

 for(let i=0;i<10;i++){

            funcs.push(()=>{

                console.log(i)

            })

       }

     console.log(funcs)

        funcs.forEach((fun)=>{

            fun();//输出0-9

        })

1-3-2

  var funcs=[];

        for(var i=0;i<10;i++){

            funcs.push(function(value){

                 return function(){

                     console.log(value)

                 }

            }(i))

        }

        console.log(funcs)

        funcs.forEach((fun)=>{    

            fun();//输出0-9

        })

1-3-3

 var funcs=[];

       var object={

           a:true,

           b:true,

           c:true

       }

       for(let key in object){

           funcs.push(function(){

               console.log(key)

           })

           console.log(key,object[key])

       }

       funcs.forEach((fun)=>{

           fun();//a,b,c

       })

  /*

        当var被用于全局作用域时,它会创建一个新的全局变量作为全局对象(浏览器window)的属性

        */

      var  RegExp='hello';

      var ncz='Hi';

      console.log(window.RegExp)//hello

      console.log(window.ncz)//Hi

 /*

      如果你在全局作用域使用let或const,会在全局作用域下创建一个新的绑定,但是该绑定不会添加为全局对象的绑定

      */

     let  RegExp='hello';

     console.log(RegExp===window.RegExp)//false

     const ncz="Hi";

     console.log('ncz' in window)//false

上一篇下一篇

猜你喜欢

热点阅读