想变大佬的小孟砸

导航

ES6标准入门读书笔记

第一章  基础

1.let和const命令

  (1).let用于声明变量,所声明的变量只在当前代码块有效 

      特点:不存在变量提升     所以在变量声明之前就使用会报错 

               暂时性死区           只要块级作用域内存在let命令,他所声明的变量就绑定在该区域,不再受外部影响  如全局和块内都有同名变量  在块内操作是操作块内的那个变量

                                         ES明确规定,如果区块中存在let和const指令,则这个区块对这些命令声明的变量从一开始就形成封闭作用域,只要在声明之前使用,就会报错

               不允许重复声明     不允许在同一作用域重复声明,因此不能在函数内部声明与参数同名的变量

  tips:function bar(x = y, y = 2){

                 console.log(x,y);

          }         // 会报错 因为当把y的值赋给x时y还没有声明

  (2).块级作用域

       块级作用域产生之前不合理的场景:

             内部变量可能会覆盖外部变量          如内部有与外部同名的变量声明  由于变量声明提升 所以内层覆盖外层

             用来计数的变量泄露成全局变量       由于闭包问题 计数的变量不能释放成为全局变量 失去计数功能

       let实际上为js提供块级作用域

       特点:

              let定义的变量 外层代码不受内层代码影响

              内层作用域可以定义与外层同名的变量

              可以取代匿名函数

      tips:

              ES6规定,函数本身的作用域在其所在的块级作用域中

              在严格模式下,函数只能在顶层作用域和函数内声明,其他情况会报错

 

      

                

             

           

posted on 2018-10-24 10:45  想变大佬的小孟砸  阅读(88)  评论(0编辑  收藏  举报