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

Typescript变量声明的更多相关文章

  1. TypeScript 变量声明(二)

    ES6 中,变量声明一共有6种,分别是var.function .let.const.class和import. let 基本语法:let 变量名 :类型.其中类型不是必须的. 1.用于声明变量,其用 ...

  2. typescript变量声明(学习笔记非干货)

    var a=10; function f(){ var message="hello,world"; return message; } function f(){ a=10; r ...

  3. TypeScript 素描-变量声明

    博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档 /* 变量声明在之前的js中一直是使用var关 ...

  4. TypeScript的变量声明

    1.全新的变量声明方式 let和const是JavaScript ES6中新添加的变量声明方式.let在很多方面与var是相似的,但是它可以避免一些在JavaScript里常见一些问题. 而const ...

  5. Typescript学习笔记(三)变量声明及作用域

    ts的变量声明有var,let和const,这尼玛完全跟es6一样嘛.就稍微介绍一下. 大多数js开发者对于var很熟悉了,原生js里没有块级作用域,只有函数作用域和全局作用域,还存在var的变量提升 ...

  6. 变量声明---let,const,解构

    let在很多方面与var是相似的,但是可以帮助大家避免在JavaScript里常见一些问题. const是对let的一个增强,它能阻止对一个变量再次赋值. 块作用域 当用let声明一个变量,它使用的是 ...

  7. 从C#到TypeScript - 变量

    总目录 从C#到TypeScript - 类型 从C#到TypeScript - 高级类型 从C#到TypeScript - 变量 从C#到TypeScript - 接口 从C#到TypeScript ...

  8. TypeScript 的声明文件的使用与编写

    https://fenying.net/2016/09/19/typings-for-typescript/ TypeScript 是 JavaScript 的超集,相比 JavaScript,其最关 ...

  9. Js 变量声明提升和函数声明提升

    Js代码分为两个阶段:编译阶段和执行阶段 Js代码的编译阶段会找到所有的声明,并用合适的作用域将它们关联起来,这是词法作用域的核心内容 包括变量声明(var a)和函数声明(function a(){ ...

随机推荐

  1. Python: 作图

    在python中实现数据的可视化,也即作图,一般是依赖matplotlib宏包实现的.但常见的代码中都是加载pylab,是不是这里写错了呀?其实pylib只是matplotlib的一个模块,只是被做成 ...

  2. Tomcat中部署web应用 ---- Dubbo服务消费者Web应用war包的部署

    样例视频:http://www.roncoo.com/course/view/f614343765bc4aac8597c6d8b38f06fd IP: 192.168.2.61 部署容器:apache ...

  3. WCF学习——构建第二个WCF应用程序(六)

    一.创建客户端应用程序 若要创建客户端应用程序,你将另外添加一个项目,添加对该项目的服务引用,配置数据源,并创建一个用户界面以显示服务中的数据.若要创建客户端应用程序,你将另外添加一个项目,添加对该项 ...

  4. 【OGG】OGG基础知识整理

    [OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...

  5. 暂停和播放CSS3动画的两种实现方法

    1,直接修改animationPlayState <!DOCTYPE html> <html> <head lang="en"> <met ...

  6. web前段学习2017.6.13

    CSS---表现层,修饰和表现html文档,为了解决结构层和表现层分离的问题. 通过CSS极大的提高了工作效率,方便工作人员维护和管理CSS:层叠样式表,目前用的最广泛的css版本为css2,最新版本 ...

  7. vijos1022题解

    Victoria是一位颇有成就的艺术家,他因油画作品<我爱北京天安门>闻名于世界.现在,他为了报答帮助他的同行们,准备开一个舞会. Victoria准备邀请n个已经确定的人,可是问题来了: ...

  8. FineReport填报分页设置

    1. 问题描述 进行FineReport数据填报时,如果数据量过大,由于前端浏览器的性能限制,如果将数据全部展现出来,速度会非常的慢,影响用户体验,这时候大家就会想,填报是否能像分页预览一样进行分页呢 ...

  9. 面向对象15.3String类-常见功能-获取-2

    public class String_APImethod {/* * 1.4获取字符串中的一部分字符串,也叫字符串 * String substring(int beginIndex, int en ...

  10. POJ 2152 fire / SCU 2977 fire(树型动态规划)

    POJ 2152 fire / SCU 2977 fire(树型动态规划) Description Country Z has N cities, which are numbered from 1 ...