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()
输出的结果分别是 2
和 1
。
const 关键字声明常量
const
关键字声明的常量是不可改变的,声明时必须初始化。其作用域同 let
关键字声明的变量。
-- -------------------- ---- ------- -------- ----------- - ----- - - -- -- ------ - ----- - - -- --------------- -- ------- - - --------------- -- ------- - - ------------
上述代码中,const x
在函数作用域中声明,块级作用域中的 if
语句内重新声明常量 x
,但无法更改 x
的值,两个 console.log()
输出的结果分别是 2
和 1
。
function 关键字声明变量
在 JavaScript 中,函数也是一种变量,可以通过 function
关键字声明。函数声明会被提升到作用域顶部,因此在声明之前调用函数也是没有问题的。
testFunction(); // output: Hello World function testFunction() { console.log('Hello World'); }
上述代码中,testFunction()
在函数声明之前调用,但没有报错,会输出 Hello World
。
总结
JavaScript 变量的声明方式有 var
、let
、const
和 function
,四种不同的方式具有不同的特点和用法。在编写代码时需要根据不同的场景和需求选择恰当的变量声明方式。在块级作用域中推荐使用 let
和 const
,在函数中推荐使用 const
和 function
。同时要注意变量的作用域、重复定义和初始化的问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6451f0f0675af4061b5a900c