js三种声明方式
var a=1 //过时,不好用
let a=1 //变量声明,作用在块里 {},具有块级作用域
const a=1 //常量声明,具有块级作用域
赋值
a=1
let 声明
规则
- 遵循块作用域,即使用范围不超过{}
- 不能重复声明
- 可以赋值,也可以不赋值
- 必须先声明,再使用,否则报错
- 全局声明的let变量,不会变成window的属性(var会)
let abc='abc'
window.abc //访问不了
const声明
- 跟let几乎一样
- 但是声明时一定要赋值,赋值后不能改
- 不能和for循环一起用,因为会i++
var 和 let 的区别是什么?
- let 不会变量提升
- var会变量提升
var变量提升
- 使用 var 来声明变量的时候,变量会被提到当前作用域的顶端,而赋值操作在原处不变
- 变量可以在使用后声明,也就是变量可以先使用再声明。
console.log(a); //undefined
var a=1
相当于
var a
console.log(a)
a=1