Skip to content

变量声明

Javascript 区分大小写,并且使用 Unicode 字符集。具体参考该文档

变量

在编程中,变量指的是储存值的一个符号。变量的名称也称作标识符

标识符命名需要遵循一定的规则:以字母、下划线(_)或者美元符号($)开头;后续接数字、字母、_ 或 $。

标识符示例:Number_hitstemp99$credit_name

声明

在 Javascript 中有以下方式声明变量:

  • 使用关键词 var。例如 var x = 1。该语法可以用来声明函数作用域变量和全局作用域变量;
  • 直接赋值。例如 x = 1。在函数外使用这种形式赋值,会产生一个全局变量。在严格模式下会产生错误。因此你不应该使用这种方式来声明变量;
  • 使用关键词 letconst。例如 let x = 1const y = 2。这些语法可以用来声明块级作用域的变量;
  • 使用解构赋值对象的某些属性绑定到变量。例如 let { bar } = foo。这会创建一个名为 bar 的变量,并且将对象 foo 中的属性 bar 的值赋给它。

var

声明一个函数作用域或全局作用域的变量,并且可选初始化一个值。

js
var name1
var name1 = value1
var name1 = value1,
  name2 = value2
var name1,
  name2 = value2
var name1 = value1,
  name2,
  /* …, */ nameN = valueN

具体请查看 var 文档。

let

声明可重新赋值的块级作用域局部变量,并且可选初始化一个值。

js
let name1
let name1 = value1
let name1 = value1,
  name2 = value2
let name1,
  name2 = value2
let name1 = value1,
  name2,
  /* …, */ nameN = valueN

具体请查看 let 文档。

const

声明一个块作用域的只读常量。

js
const name1 = value1
const name1 = value1,
  name2 = value2
const name1 = value1,
  name2 = value2,
  /* …, */ nameN = valueN

具体请查看 const 文档。

三者区别

varletconst
初始值可选,否则为 undefined可选,否则为 undefined必须初始化
能否重新赋值✔️✔️
能否在声明前进行访问✔️
能否重复定义✔️
在全局作用域中声明时能否挂载到全局对象上✔️
全局作用域✔️✔️✔️
函数作用域✔️✔️✔️
模块作用域✔️✔️✔️
块级作用域✔️✔️
能否与函数声明同名✔️,变量值始终覆盖函数

参考