变量声明
Javascript 区分大小写,并且使用 Unicode 字符集。具体参考该文档。
变量
在编程中,变量指的是储存值的一个符号。变量的名称也称作标识符。
标识符命名需要遵循一定的规则:以字母、下划线(_)或者美元符号($)开头;后续接数字、字母、_ 或 $。
标识符示例:Number_hits、temp99、$credit 和 _name。
声明
在 Javascript 中有以下方式声明变量:
- 使用关键词
var。例如var x = 1。该语法可以用来声明函数作用域变量和全局作用域变量; - 直接赋值。例如
x = 1。在函数外使用这种形式赋值,会产生一个全局变量。在严格模式下会产生错误。因此你不应该使用这种方式来声明变量; - 使用关键词
let、const。例如let x = 1、const 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 文档。
三者区别
| var | let | const | |
|---|---|---|---|
| 初始值 | 可选,否则为 undefined | 可选,否则为 undefined | 必须初始化 |
| 能否重新赋值 | ✔️ | ✔️ | ❌ |
| 能否在声明前进行访问 | ✔️ | ❌ | ❌ |
| 能否重复定义 | ✔️ | ❌ | ❌ |
| 在全局作用域中声明时能否挂载到全局对象上 | ✔️ | ❌ | ❌ |
| 全局作用域 | ✔️ | ✔️ | ✔️ |
| 函数作用域 | ✔️ | ✔️ | ✔️ |
| 模块作用域 | ✔️ | ✔️ | ✔️ |
| 块级作用域 | ❌ | ✔️ | ✔️ |
| 能否与函数声明同名 | ✔️,变量值始终覆盖函数 | ❌ | ❌ |