ES6 什么是块级作用域变量和函数

ES6 什么是块级作用域变量和函数

块级作用域变量函数 是在特定的块或者花括号{}中定义的,并且它们只能在该特定块或者从该块中访问。块级作用域变量首次引入于 EcmaScript2015es6 中。ES6为我们引入了两个关键字: letconst 来声明具有块级作用域的变量。在本文中我们将详细看一下它们。

let关键字: let 关键字不允许在同一个块中重新声明一个变量,尽管使用 var 关键字声明变量时是可以的。如果尝试重新声明用let关键字定义的变量,将会抛出错误 SyntaxError: Identifier has already been declared

语法:

let first_name="John";

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

HTML

<script>
    function myFunction() {
        var name = "GeeksforGeeks";
        let desc = 
            "A computer science portal for all geeks";
        console.log(name);
        console.log(desc);
       
        var name = "GFG";
        console.log(name);
 
    }
    myFunction();
    console.log(desc); // ReferenceError: desc is not defined
</script>

输出:

ES6 什么是块级作用域变量和函数

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

HTML

<script>
    function myFunction() {
        var name = "GeeksforGeeks";
        let desc = 
            "A computer science portal for all geeks";
        console.log(name);
        console.log(desc);
       
        var name = "GFG";
        let desc = "Welcome to GFG";
        console.log(name);
        console.log(desc);
    }
    myFunction();
</script>
**输出:**

ES6 什么是块级作用域变量和函数

常量关键字: 使用 const 关键字声明的变量不能像使用 let 关键字一样被重新声明,也不能重新赋值。我们使用const关键字声明一个在代码中不希望改变的常量。如果我们尝试重新赋值const变量,会显示一个错误: TypeError: Assignment to constant variable.

语法:

const age = 23;

示例1:

在这个示例中,我们试图重新分配一个const变量,结果会产生一个错误。

HTML

<script>
    function myFunction() {
        var name = "GeeksforGeeks";
        const desc = "A computer science portal for all geeks";
        desc = "Welcome to GFG";
        console.log(name);
        console.log(desc);
    }
    myFunction();
</script>

输出:

ES6 什么是块级作用域变量和函数

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

HTML

<script>
    function myFunction() {
        var name = "GeeksforGeeks";
        const desc = 
              "A computer science portal for all geeks";
        console.log(name);
        console.log(desc);
    }
    myFunction();
    console.log(desc); //ReferenceError: desc is not defined
</script>

输出:

ES6 什么是块级作用域变量和函数

示例3: 在这个示例中,我们尝试重新声明 描述 变量。

HTML

<script>
    function myFunction() {
        var name = "GeeksforGeeks";
        const description = 
              "A computer science portal for all geeks";
        console.log(name);
       
        const description = "Welcome to GFG!";
        console.log(description);
    }
    myFunction();
</script>

输出:

ES6 什么是块级作用域变量和函数

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

函数写在另一个函数内:

语法:

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

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

示例:

HTML

<script>
    function myFunction() {
        var name = "GeeksforGeeks";
        function myFunction2() {
            let desc = 
                "A computer science portal for all geeks.";
            console.log(name);
            console.log(desc);
        }
        myFunction2();
        console.log(name);
    }
    myFunction();
</script>

输出:

ES6 什么是块级作用域变量和函数

写在条件语句内的函数:

语法:

if (true){
    // Content of conditional statement

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

示例:

HTML

<script>
    if (true) {
        var name = "GeeksforGeeks";
        function myFunction() {
            let description =
                "A computer science portal for all geeks.";
            console.log(name);
            console.log(description);
        }
        myFunction();
    }
</script>

输出:

ES6 什么是块级作用域变量和函数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程