Javascript: let、var、Const关键词与实例 || ES6

88 阅读2分钟

let var, Const关键字用于在typecript和javascript中声明变量。变量可以全局或局部声明。

Var关键字

var关键字是用来声明javascript的变量的。Typecript的行为也与功能范围相同

  1. 用这个关键字声明的变量,如果是在函数中声明的,则是局部的,如果是在外部声明的,则是全局的。
  2. 如果没有使用var关键字来声明变量,它就假定是全局变量。
  3. 用var关键字重新声明变量,它不会失去它的原始值
  4. 变量在没有声明和初始化其值的情况下未被定义而返回。

例子和用法

var value = 11;
var value1;
function myfunction() {
    value = 456; //  allowed
    value2 = 14
    console.log(value) // 456
    console.log(value1) // undefined
    console.log(value2) // 14
}
myfunction();

Let关键字

Let关键字引入了ES6-ES2015,它被用来在块范围内声明一个变量。

let value = "abc";
console.log(value); // abc
if (true) {
    let value = "newabc";;
    console.log(value); // newabc
}
console.log(value); // abc

在当前上下文中用let重新声明同一变量会抛出SyntaxError - 不能重新声明封锁范围的变量值。

let value = "abc";
let value = "newabc";

让变量托管

当变量在没有声明的情况下被使用时,抛出Uncaught ReferenceError: value is not defined

function myfunction() {
    console.log(value);
}
myfunction()

const关键字

const关键字与let相同,但也有区别。用const声明的变量必须立即初始化,一旦声明了const变量,它的值不会因为重新赋值而改变。

const value = 123;
function myfunction() {
    value = 123; // not allowed
}

ES6的Let和Const的时间性死区

这是在ES6中引入的。在没有使用let和const声明的情况下调用变量,会引发ReferenceError。这是为了避免编程中的异常,并为调试变量提供保障。

Let和var关键字的区别

两者都是用来声明变量的,Let在封锁的范围内创建一个变量,var在全局范围内创建一个变量,不同的例子如下所示

// example var
for (var val = 0; val < 2; val++){
   console.log(val)
}
console.log(val) // 5

// example let
for (let val = 0; val < 2; val++){
   console.log(val)
}
console.log(val)// undefined