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. 远程连接mysql 授权方法详解

    今在服务器上 有mysql 数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库. 方案一: 在安装mysql的机器 ...

  2. Latex加速: TexStudio的安装和使用

    TexStudio可以加速Latex的编辑和写作,这里简单介绍一下TexStudio的安装,配置和使用.但是有一个重要的前提,TexStudio会使Latex源代码和pdf文件并排显示,比较占用桌面的 ...

  3. web前段学习2017.6.13

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

  4. 如何判断浏览器为ie10以上

    如果针对ie10 以上单独写css样式的话,ie10以上已经不提供 <!--[if ...]><![endif]--> 这种方法去操作了,所以可以用css媒体查询的方法@med ...

  5. javaScript事件绑定

    事件绑定,就是要对某一个东西进行操作.(因为你想让他实现什么效果,所以就得绑定他,哈哈哈!) 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函 ...

  6. centos7架设vsftpd服务

    网络控制相关命令: systemctl status network 网络状态 systemctl restart network 网络重启 查看网络状态: nmcli connection show ...

  7. elasticsearch REST API方式批量插入数据

    elasticsearch REST API方式批量插入数据 1:ES的服务地址  http://127.0.0.1:9600/_bulk 2:请求的数据体,注意数据的最后一行记得加换行 { &quo ...

  8. java用户界面—创建一个面板

    先从基础学起 创建一个面板 代码如下: package Day08; import java.awt.FlowLayout; import javax.swing.JButton;import jav ...

  9. Health Check in eShop -- 解析微软微服务架构Demo(五)

    引言 What is the Health Check Health Check(健康状态检查)不仅是对自己应用程序内部检测各个项目之间的健康状态(各项目的运行情况.项目之间的连接情况等),还包括了应 ...

  10. 51nod_1627:瞬间移动

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1627 还是杨辉三角~ #include<bits/st ...