什么是 ES6 中的块作用域变量和函数?
块范围的变量和函数在特定块内或花括号 {} 大括号内定义,它们只能在该特定块内或该块内访问。块作用域变量最初是在EcmaScript2015或es6 中引入的。 ES6向我们介绍了两个关键字: let和const ,它们允许我们声明具有块范围的变量。让我们在本文中详细了解它们。
let 关键字: let关键字不允许我们在同一个块中重新声明变量,而当您使用声明它时是可能的 var关键字。如果您尝试重新声明使用 let 关键字定义的变量,则会将错误抛出为SyntaxError: Identifier has already been declared 。
句法:
let first_name="John";
示例 1:下面的示例说明了我们不使用let关键字重新声明变量的情况。
HTML
HTML
HTML
HTML
HTML
HTML
HTML
输出:
![](https://mangodoc.oss-cn-beijing.aliyuncs.com/geek8geeks/What_are_Block_Scoped_variables_and_functions_in_ES6_?_0.jpg)
无需重新声明
示例 2:下面的示例说明了当我们使用let关键字重新声明变量时。
HTML
输出:
![](https://mangodoc.oss-cn-beijing.aliyuncs.com/geek8geeks/What_are_Block_Scoped_variables_and_functions_in_ES6_?_1.jpg)
使用重新声明
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
输出: