zoukankan      html  css  js  c++  java
  • Typescript变量声明

    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

  • 相关阅读:
    浏览器和node中的event loop的区别
    path.resolve(dir)与path.join(__dirname,dir)的区别
    如何在typescript项目中使用eslint
    eslint无法检测ts类型错误
    todo
    brew update 卡住
    async await原理
    node的require
    Hive表头导出成csv文件
    算法--决策树
  • 原文地址:https://www.cnblogs.com/hbzyin/p/6517702.html
Copyright © 2011-2022 走看看