📜  什么是 ES6 中的块作用域变量和函数?

📅  最后修改于: 2022-05-13 01:56:17.093000             🧑  作者: Mango

什么是 ES6 中的块作用域变量和函数?

块范围的变量函数在特定块内或花括号 {} 大括号内定义,它们只能在该特定块内或该块内访问。块作用域变量最初是在EcmaScript2015es6 中引入的。 ES6向我们介绍了两个关键字: letconst ,它们允许我们声明具有块范围的变量。让我们在本文中详细了解它们。

let 关键字: let关键字不允许我们在同一个块中重新声明变量,而当您使用声明它时是可能的 var关键字。如果您尝试重新声明使用 let 关键字定义的变量,则会将错误抛出为SyntaxError: Identifier has already been declared

句法:

let first_name="John";

示例 1:下面的示例说明了我们不使用let关键字重新声明变量的情况

HTML


HTML


HTML


HTML


HTML


HTML


HTML


输出:

无需重新声明

示例 2:下面的示例说明了当我们使用let关键字重新声明变量时。

HTML


输出:

使用重新声明

const 关键字:使用const关键字声明的变量不能像let关键字一样重新声明,也不能重新赋值。我们使用 const 关键字来声明一个我们不想在代码中更改其值的常量。如果我们尝试重新分配 const 变量,它将显示错误TypeError: Assignment to constant variable。

句法:

const age = 23;

示例 1:在此示例中,我们尝试重新分配 const 变量,从而导致错误。

HTML


输出:

示例 2:在此示例中,我们尝试访问函数外部的变量。

HTML


输出:

示例 3:在此示例中,我们尝试重新声明description变量。

HTML


输出:

块作用域函数:块作用域函数可以在代码块内定义,该块可以在简单的花括号内或条件语句的任何函数内。如果一个函数写在另一个函数内部,那么这些函数就是嵌套函数。

写在另一个函数中的函数:

句法:

function func1(){
     // Content of the func1()
     
     function func2(){
         // Content of the func2()
     }
 }

例子:

HTML


输出:

写在条件语句中的函数:

句法:

if (true){
    // Content of conditional statement
    
    function func1(){
        // Content of func1()
    }
}

例子:

HTML


输出: