📜  ES6变量

📅  最后修改于: 2021-01-01 03:49:29             🧑  作者: Mango

ES6变量

变量是内存中的命名空间,用于存储值。变量的名称称为标识符。命名标识符时应牢记一些规则。这些规则如下:

  • 它可以包含数字和字母。
  • 您不能以数字开头变量的名称。
  • 关键字不能用作变量的名称。
  • 美元($)符号下划线(_)外,标识符不包含空格和特殊字符

变量初始化

这是将值存储在变量中的过程。可以在使用变量之前随时对其进行初始化。

ES6语法使用关键字var声明变量。在ES5中,我们这样声明变量:

var x //Declaration of a variable by using the var keyword 

变量声明的有效语法类型

一些变量声明被认为是有效的,如下所示:

var $example1=value
var example1=value
var _example$=value

在ES6中,变量通过以下方式声明:

  • 使用let
  • 使用const

让:

使用let关键字声明的任何变量都被分配了块作用域。块作用域不过是声明let变量的部分,无论该变量是函数{}block {}还是全局(脚本)

例如: var v / s let

通过使用var

var x = 100;
var x=200;
console.log(x);

代码成功执行后,您将获得以下输出:

输出:

200

让我们尝试使用let关键字重新编写以上代码:

通过使用let

let x = 100;
let x=200;
console.log(x);

输出:

SyntaxError: Identifier 'x' has already been declared

成功执行代码后,您将得到一个错误,表明标识符' x '已经被声明。因此,将使用let关键字声明的任何变量分配给块作用域。

const:

ES6提供了一种使用const关键字声明常量的新方法。关键字const创建对该值的只读引用。 const的一些属性如下:

特性:

  • 不能为它重新分配一个值。
  • 它是块作用域的。
  • 常量不能重新声明。
  • 常量必须在声明时进行初始化。

例如:

const y=100
y=200 // It will result in an error

输出:

TypeError: Assignment to constant variable.

因为常量变量是不可变的并且不能为它重新赋值,所以它将引发错误。

JavaScript变量范围

JavaScript中有两个作用域,它们是全局局部的:

  • 全局范围:在全局范围内,可以从JavaScript代码的任何部分访问变量。
  • 局部作用域:在局部作用域中,可以在声明变量的函数中访问该变量。

例:

下面的示例描述了全局和本地范围:

在此示例中,有两个变量,一个在函数外部(全局范围),另一个在函数外部(局部范围)。

var $var12 = 200; 

function example() {  
    var $var12 = 300; 
    console.log("Inside example() function = "
               + $var12); 
} 
console.log("Outside example() function = " 
               + $var12);
example(); 

输出:

Outside example() function = 200
Inside example() function = 300

JavaScript动态键入

JavaScript支持动态键入的概念,类似于ruby等。它是一项功能,您无需告诉JavaScript变量将持有哪种类型的值。如果在程序执行期间更改了变量的值类型,则将触发该变量,然后JavaScript会自动进行处理。

ES6和可变吊装

提升是JavaScript的默认行为,它将所有声明移到当前脚本,当前函数或当前作用域的顶部。它允许您在声明变量之前使用变量。 JavaScript仅提升变量声明,而不提升变量初始化。

例如:

悬挂了JavaScript声明

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

上面的代码将成功执行并显示所需的输出,而不是给出声明错误。它的发生是由于吊装概念。让我们看看代码处于编译阶段时会发生什么。

当以上代码处于编译阶段时,它将被视为:

在编译阶段

var x; // declaration of the variable will move on top.
x=10;
console.log(x);

输出:

10

不初始化JavaScript初始化

1.在使用变量之前对其进行初始化

var x=100;
var y=200;
console.log(x+"  "+y);

在编译阶段

var x;
var y;
x=100;
y=200;
console.log(x+"  "+y);

输出:

100  200

二。使用后初始化变量时

var x=100;
console.log(x+"  "+y);
var y=200;

让我们看看当此代码处于编译阶段时会发生什么。

编译此代码时,将按以下方式处理:

在编译阶段

var x;
var y;
x=100;
console.log(x+"  "+y);
y=200;

执行此代码时,将获得以下输出,其中y的值未定义。

输出:

100  undefined

发生这种情况是因为如果使用后进行初始化,则提升不允许我们在顶部移动变量的初始化。