TypeScript 变量声明

ES6 中,变量声明一共有6种,分别是varfunction 、letconstclassimport

let

基本语法:let 变量名 :类型。其中类型不是必须的。

1、用于声明变量,其用法似于var。

let name = ‘Sunny‘

2、所有声明的 let 变量仅在let命令所在的代码块(块级作用域)内有效。

function f(input: boolean) {
    let a = 100;
    if(input) {
        let b = a + 1; // 运行正确
        return b;
    }
    return b; // 错误, b没有被定义
}

3、在同样的作用域中,let 不允许变量被重复声明

// 报错
function () {
  let a = 10;
  var a = 1;
}

// 报错
function () {
  let a = 10;
  let a = 1;
}

4、不能在它的声明之前被读取或赋值。

function funA(x) {
    let x = 100;    // 报错,x已经在函数入参声明
}

// 增加了判断条件组成的新的块级作用域
function funB(condition, x) {
    if(condition) {
        let x = 100;     // 运行正常
        return x;
    }
    return x;
}

funB(false, 0);    // 返回 0
funB(true, 0);    // 返回 100

let 和bar 的区别:

  • 作用不同,let是有严格的块作用域。
  • 在块中,不能重复声明,要先声明后使用。

const声明

const 声明与 let 声明相似,它与 let 拥有相同的作用域规则。但 const 声明的是常量,常量不能被重新赋值。但是如果定义的常量是对象,对象里的属性值是可以被重新赋值的

const msg = "This is a message";
msg = "xx" // 编译报错

const person = {
    name: "Aurora",
    age: 20
}

person = {}; // 编译报错

person.name = "tom" // OK
person.age = 10 // OK

原文地址:https://www.cnblogs.com/AndyChen2015/p/9612967.html

时间: 2024-10-08 21:47:47

TypeScript 变量声明的相关文章

TypeScript的变量声明

1.全新的变量声明方式 let和const是JavaScript ES6中新添加的变量声明方式.let在很多方面与var是相似的,但是它可以避免一些在JavaScript里常见一些问题. 而const则是对let的一个增强,它将阻止对一个变量再次赋值(二次赋值). 因为TypeScript是JavaScript的超集,所以它本身就支持let和const. ⒉var声明 原文地址:https://www.cnblogs.com/fanqisoft/p/11828839.html

第四章 变量声明

变量声明 一.let 和 const let 和 const 是 JavaScript 里相对较新的变量声明方式. let 在很多方面与 var 是相似的,但是可以帮助大家避免在 JavaScript 里常见一些问题(如作用域提升). const 是对 let 的一个增强,它能阻止对一个变量再次赋值. 因为 TypeScript 是 JavaScript 的超集,所以它本身就支持 let 和 const. 推荐使用它们来代替 var. 使用最小特权原则,所有变量除了你计划去修改的都应该使用 co

javascript变量声明和作用域提升

以前的知识总是忘,遇到代码又看不懂.要再复习一下,顺便记录一下. 1 add(1,2); 2 function add(a,b){ 3 alert(a+b); 4 } 代码能输出3,为什么不是按顺序执行?应该是  //add is not defined ... javascript的变量声明具有hoisting机制,JavaScript引擎在执行的时候,会把所有变量的声明都提升到当前作用域的最前面. 也就是说,function add(a,b){alert(a+b)}是一个函数声明,告诉我们有

JavaScript 变量声明提升

JavaScript 变量声明提升 一.变量提升的部分只是变量的声明,赋值语句和可执行的代码逻辑还保持在原地不动 二.在基本的语句(或者说代码块)中(比如:if语句.for语句.while语句.switch语句.for...in语句等),不存在变量声明提升 三.函数声明会提升,但是函数表达式的函数体就不会提升 1 fun(); // hello 2 function fun(){ 3 console.log("hello"); 4 } 5 // -------------- 6 //

javascript中变量声明要早于赋值

javascript中变量声明要早于赋值:这里只做简单的现象介绍,具体不做深究,先看一段代码实例: var webName="蚂蚁部落"; document.write(webName); 对于这段代码应该没有任何问题,输出结果是:蚂蚁部落.再来看一段代码: document.write(webName); var webName="蚂蚁部落"; 按照代码是顺序执行的理论,以上代码应该会报错才对,但是这里输出结果却是:undefined.这说明在执行输出之前,变量已

关于Javascript没有块级作用域和变量声明提升

Javascript是没有块级作用域的,在语句块中声明的变量将成为语句块所在代码片段的局部变量.例如: 1 if(true){ 2 var x=3; 3 } 4 console.log(x); 结果输出3. 再如: 1 var x=5; 2 3 function a(){ 4 if(!x){ 5 var x=10; 6 } 7 console.log(x); 8 } 9 a(); 结果是10.因为变量声明的提升,原理是这样的,举个例子: 1 if(a==undefined){ 2 alert("

变量声明和定义的区别

我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点对你受益) 变量的声明有两种情况: 1.一种是需要建立存储空间的.例如:int a 在声明的时候就已经建立了存储空间. 2.另一种是不需要建立存储空间的. 例如:extern int a 其中变量a是在别的文件中定义的. 前者是“定义性声明(defining declaration)”或者称为“定义(definition

变量声明置顶规则、函数声明及函数表达式和函数的arguments属性初始化

一.变量声明和变量赋值: if (!("a" in window)) { var a = 1; } alert(a);//a为? 你可能认为alert出来的结果是1,然后实际结果是"undefined".要了解为什么,我们需要知道JavaScript里的3个概念: 1.所有的全局变量都是window的属性,语句 var a = 1;等价于window.a = 1; 可以用如下方式来检测全局变量是否声明: "变量名称" in window 2.声明

ES6变量声明 ------ let and const

在ES5中,声明变量的方式只有一种, 那就是var, 如var mes ="hello", 但是用var声明变量有一个比较奇怪的地方,就是变量声明的提升,比如在函数中,无论我们声明变量的代码写在什么地方,它都是在函数顶部声明变量,在全局作用域下,则是在script标签顶部声明变量,这就有点郁闷了,因为按照我们正常的思维方式,我们代码是一行一行写的,只有用到某个变量的时候,才进行声明变量,并且声明变量后,只有它后面的代码才可以用,现在成了,我们在后面声明变量,在前面也可以用了,这不符合我