let 和 const 是 javascript 里面最新的变量声明方式,let 与 var 很相似,而 const 是 let 的增强,能阻止对一个变量的再次赋值。

  1. var 声明

    1. 弱类型:var 声明变量时,不管声明再任何位置,总会提到全部代码执行前——声明提前,且可不必对变量类型做约束,变量类型可随需要任意改变赋值;
    2. 作用域:var 声明的变量,可以在包含他的函数、模块、命名空间、全局作用域内部任意位置被访问;(多次声明同一变量并不会报错)
    3. 变量值:var 声明的变量,其值为函数执行结束时的值,
      //1.重复赋值——里层的for会覆盖变量i
      function sumMatrix(martrix:number[][]){
      var sum=0;
      for(var i=0;i<martrix.length;i++){
      var currRow=martrix[i];
      for (var i=0;i<currRow.length;i++){
      sumb+=currRow[i]
      }
      }
      return sum;
      }
      //2.变量总取得函数执行后的值
      for (var i = 0; i < 5; i++) {
      setTimeout(function() { console.log(i); }, 100 * i);
      }
      //5,5,5,5,5
  2. let 声明

    1. 强类型: let 声明的变量,必须先声明,再访问;变量声明前的代码区域都属于时间死区;
    2. 块作用域:let 声明的变量,其作用域是词法作用域,亦即块作用域,不能在包含它们的函数外访问;
    3. 重定义及屏蔽:let 声明的变量,不可重复声明;在一个嵌套作用域里引入一个新名字的行为称做屏蔽;
    4. 变量的获取:块级作用域拥有独立的运行环境;
      for (let i = 0; i < 5; i++) {
      setTimeout(function() {console.log(i); }, 100 * i);
      }
      //0,1,2,3,4
  3. const 声明

拥有和 let 一样的作用域,但不可进行再赋值;

ps:具体使用何种方式声明变量,遵循“最小特权原则”。

__end

最新文章

  1. javascript:history.go()和History.back()的区别(转载)
  2. [leetcode 37]sudoku solver
  3. 模拟java.util.Collection一些简单的用法
  4. infer.net 入门2 用一个侦探故事来讲解,通俗易懂
  5. 微信开发小结-PHP
  6. 在eclipse中配置spark 0.9.1源码的开发环境
  7. Ecmall系统自带的分页功能使用
  8. NOIP 2017 Day 0. 游记
  9. git应用
  10. LVS+nginx负载均衡知识点1
  11. 关于c++的一篇随笔
  12. Dapper简易教程(翻译自Github上StackExchange/Dapper)
  13. 朱晔和你聊Spring系列S1E6:容易犯错的Spring AOP
  14. BZOJ2938[Poi2000]病毒——AC自动机
  15. CentOS7安装Jdk1.8
  16. 学习笔记18—circos应用集
  17. C#数组的定义,不定长的数组?
  18. 5337朱荟潼Java实验报告一
  19. AtCoder Grand Contest 029 翻车记
  20. linux 查看登录日志

热门文章

  1. python list有关remove的问题
  2. Css3视频教程下载
  3. php二进制流文件
  4. [leetcode-567-Permutation in String]
  5. 怎么利用composer创建laravel项目
  6. 暂停和播放CSS3动画的两种实现方法
  7. java udp服务器设计源码
  8. input标签在只允许输入数字的时候添加的代码
  9. (转载)DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
  10. 第三章:3.3 post 请求