JavaScript 四种声明变量的方式

阅读时长 3 分钟读完

JavaScript 是一门动态弱类型脚本语言,变量的声明方式有很多种,本文将介绍 JavaScript 四种常用的变量声明方式及其特点、用法和注意事项。

var 关键字声明变量

JavaScript 最初只有 var 关键字声明变量,可以声明全局变量和局部变量,也可以不初始化直接声明。 var 声明的变量,其作用域为函数作用域或全局作用域,但不在块作用域中。

-- -------------------- ---- -------
-------- --------- -
  --- - - --
  -- ------ -
    --- - - --
    --------------- -- ------- -
  -
  --------------- -- ------- -
-
----------

上述代码中,var x 在全局作用域中声明,块级作用域中的 if 语句内重新声明变量 x,两个 console.log() 输出的结果都是 2。这是因为块级作用域中声明的 var 变量会污染外部作用域。

let 关键字声明块级作用域变量

ES6 引入了 let 关键字声明变量,可以声明块级作用域变量,也可以不初始化直接声明。 let 声明的变量不能重复定义,会报语法错误。由于 let 声明的变量是块级作用域,因此可以使内部变量不受外部变量的影响。

-- -------------------- ---- -------
-------- --------- -
  --- - - --
  -- ------ -
    --- - - --
    --------------- -- ------- -
  -
  --------------- -- ------- -
-
----------

上述代码中,let x 在函数作用域中声明,块级作用域中的 if 语句内重新声明变量 x,两个 console.log() 输出的结果分别是 21

const 关键字声明常量

const 关键字声明的常量是不可改变的,声明时必须初始化。其作用域同 let 关键字声明的变量。

-- -------------------- ---- -------
-------- ----------- -
  ----- - - --
  -- ------ -
    ----- - - --
    --------------- -- ------- -
  -
  --------------- -- ------- -
-
------------

上述代码中,const x 在函数作用域中声明,块级作用域中的 if 语句内重新声明常量 x,但无法更改 x 的值,两个 console.log() 输出的结果分别是 21

function 关键字声明变量

在 JavaScript 中,函数也是一种变量,可以通过 function 关键字声明。函数声明会被提升到作用域顶部,因此在声明之前调用函数也是没有问题的。

上述代码中,testFunction() 在函数声明之前调用,但没有报错,会输出 Hello World

总结

JavaScript 变量的声明方式有 varletconstfunction,四种不同的方式具有不同的特点和用法。在编写代码时需要根据不同的场景和需求选择恰当的变量声明方式。在块级作用域中推荐使用 letconst,在函数中推荐使用 constfunction。同时要注意变量的作用域、重复定义和初始化的问题。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6451f0f0675af4061b5a900c

纠错
反馈