ES6-var let const

时间:2020-02-23 14:33:07  来源:igfitidea点击:

在此ES6 JavaScript教程中,我们将学习使用var,let和const创建变量。

var关键字

好吧,让我们开始使用var关键字创建一个变量。

假设我们要创建一个变量" x"并为其分配一个值10。
因此,我们将编写以下行。

var x = 10;

现在,如果我们要打印x的值,我们可以通过编写以下行来控制台记录它。

var x = 10;
console.log(x);

然后我们得到输出10。

在使用var关键字声明变量时,我们必须注意的几个要点。

我们可以再次重新定义相同的变量" x",并且不会出现任何错误。

因此,我们可以编写如下内容。

var x = 10;
console.log(x); //10
var x = 20;
console.log(x); //20

这不会给我们带来任何错误。

不要这样这会导致错误。

这是一个问题,因为我们可以多次声明变量而不会出现任何错误。
这将导致错误。

关于var关键字的另一点重要注意事项是,它不在块内作用域,但在文件中全局可用。

例如,让我们创建一个" for"循环并从1到5打印。

for(var x = 1; x <= 5; x++) {
  console.log('inside: ', x);
}

如果运行代码,则将打印1至5。
太棒了!可是等等。
即使我们在循环主体中声明了变量x,也可以在for循环外部访问它。

因此,如下所示,我们在循环外控制台记录x的值。

for(var x = 1; x <= 5; x++) {
  console.log('inside: ', x);
}
console.log('outside: ', x);

我们将获得以下输出。

inside: 1
inside: 2
inside: 3
inside: 4
inside: 5
outside: 6

在本教程中了解有关for循环的更多信息。

类似地,如果我们在循环体内使用var关键字声明变量,则可以在循环外部访问它。

for(var x = 1; x <= 5; x++) {
  console.log('inside x: ', x);
  var y = 10;
}
console.log('outside y: ', y);

上面的代码将为我们提供以下输出。

inside x: 1
inside x: 2
inside x: 3
inside x: 4
inside x: 5
outside y: 10

为了防止变量的重新声明和使变量块成为作用域,我们使用let关键字。

let关键字

让我们创建一个变量" x",这次使用" let"关键字。

let x = 10;

现在,如果要控制台记录x的值,我们可以编写以下内容。

let x = 10;
console.log(x); //10

Since we have declared the variable xusing the letkeyword so, if we again try to redeclare it we will get error.

let x = 10;
console.log(x);
let x = 20; //this will give error

类似地,当我们使用let关键字在循环中创建变量时,则只能在循环体内访问该变量。
如果尝试在循环主体之外访问它,则会收到错误消息。

在下面的示例中,我们将创建一个for循环,并使用let关键字来创建一个变量x,并将值打印为1到5。
我们还将使用``在循环体内声明一个变量。
let`关键字。

for(let x = 1; x <= 5; x++) {
  console.log('inside x: ', x);
  let y = 100;
  console.log('inside y: ', y);
}
console.log('outside x: ', x); //this will give error
console.log('outside y: ', y); //this too will give error

const关键字

我们使用ES6的const关键字创建常量。
如果我们希望变量的值在代码执行过程中永不改变,则可以使用const关键字将其声明为常量。

在以下示例中,我们将PI声明为常量。

const PI = 3.14;

尝试将新值重新分配给常数会产生错误。

以下代码将在我们尝试为常量变量分配新值时出现错误。

const PI = 3.14;

//some lines of code...

PI = 3.14159;  //this will give error