zoukankan      html  css  js  c++  java
  • JavaScript 中 var、let 和 const 的区别

    JavaScript 有三个用于变量声明的关键字。每个关键字都是有用的,并且有你需要使用它的情况。这就是为什么需要知道 JavaScript 中三个变量声明关键字之间区别的重要原因。许多初学者在需要使用什么关键字时感到困惑。特别是,如果他们不了解三个关键字之间的区别。这就是为什么在这篇文章中,我们将了解这些关键字之间的差异(var,let,和const)。所以让我们开始吧。

    1.var 关键字

    JavaScript 中的关键字 var 是开发人员用于变量声明的第一个关键字。

    当你使用关键字 var 在函数内声明变量时。该变量在该函数之外无法访问,因为在这种情况下它具有函数作用域。

    下面是一个例子:

    function sayHelllo() {
     var greeting = 'Hello!';
     console.log(greeting);
    }
    
    sayHelllo(); // 'Hello!'
    
    console.log(greeting) // ReferenceError: sentence is not defined

    如上所示,当我们在函数内部调用变量 greeting 时,我们会在调用函数时在控制台中得到响应。

    但是当我们在函数外调用 greeting 时,我们会得到一个引用错误,因为在函数内用关键字 var 声明的变量在该函数外是不可访问的。

    但是,如果在函数外部使用关键字 var 声明变量,它将具有全局作用域。这意味着它可以在你的代码中的任何地方访问。

    下面是一个例子:

    /* This variable has a global scope, it's accessible everywhere */
    var greeting = "Hello John";
    function sayHelllo() {
     console.log(greeting); // "Hello John"
    }
    console.log(greeting); // "Hello John"

    因此,在函数外部使用关键字 var 声明的变量是全局范围的。它们随处可见。

    除此之外,带有关键字 var 的变量是可声明和可重新分配的。这意味着您可以重新声明相同的变量并重新分配它,而不会出现任何问题。

    下面是一个例子:

    var name = 'John';
    var name = 'Brad';
    console.log(name) // 'Brad'

    即使我们声明了相同的变量并重新分配了它,代码仍然可以正常工作而不会出错。但是,这并不好,因为有时你可以编写相同的变量,甚至在代码中都没有注意到它们。这也可能导致你的程序出错。

    使用 var 时要记住的另一件事是,使用关键字 var 声明的所有变量和函数都被提升到其作用域的顶部。如果你不熟悉 JavaScript 中的提升,我真的建议你学习它,因为这是一个需要了解的重要概念。

    2.关键字 let 和 const

    ES6 中引入了关键字 let 和 const 作为 var 的替代。它们非常有用,如今几乎每个 JavaScript 开发人员都在使用它们。

    与关键字 var 不同,这两个关键字具有块作用域。这意味着当你在块中声明它们时,它们只能在该块 {} 内访问。

    下面是一个例子:

    {
        const a = 5;
        let b = 6;
        var c = 8;
    }
    //Accessing the variables outside the block.
    console.log(a); //Error: a is not defined.
    console.log(b); //Error: b is not defined.
    console.log(c); // 8

    如你所见,使用 const 和 let 声明的变量在大括号之间的范围之外不可访问。这就是我们得到错误的原因。所以这非常有用,因为有时使用关键字 var 你可以在不注意它的情况下更改变量。

    另外,请记住,与 var 不同,使用 let 和 const 声明的变量和函数不会被提升。所以你不必关心吊装。

    现在,你可能想知道 let 和 cosnt 之间的区别是什么?

    好吧,用关键字 let 声明的变量是可重新分配的,而不是可重新声明的。虽然使用关键字 const 声明的变量不可重新分配且不可重新声明

    因此,只需将 let 用于稍后要更改的变量,而 const 用于你不想更改的常量变量

    下面是一个例子:

    const name = "Brad";
    const name = John; //Error.
    let x = 1;
    x = 2;
    console.log(name); //"Brad"
    console.log(x); // 2

    3.差异

    关键字 var :

    • 函数作用域和全局作用域。

    • 吊起。

    • 可重新分配和重新申报。

    关键字 let :

    • 块范围。

    • 没有吊起来。

    • 可重新分配且不可重新申报。

    关键字 const :

    • 块范围。

    • 没有吊起来。

    • 不可重新分配且不可重新申报。

    4.结论

    正如你所看到的,这些都是关键字之间的差异var,let以及const在JavaScript中。就我个人而言,我大部分时间在我的代码中使用const和let是因为它们更安全和有用。

    我很少将关键字var用于全局变量,或者如果我希望我的变量被提升。

     

    参考---https://mp.weixin.qq.com/s/n51M6NoCXqKIRhwLPj5L5g

  • 相关阅读:
    基础DP(初级版)
    UVA-816.Abbott's Tevenge (BFS + 打印路径)
    1044: 数圈
    1049: 打牌
    1047: 小A的计算器
    1046: 最小的K个数
    1045: 愚人节的礼物
    1044: 数圈
    1043: 绩点计算
    1042: 小丑排序
  • 原文地址:https://www.cnblogs.com/pwindy/p/15002821.html
Copyright © 2011-2022 走看看