js三种声明方式

  1. var a=1 //过时,不好用
  2. let a=1 //变量声明,作用在块里 {},具有块级作用域
  3. const a=1 //常量声明,具有块级作用域

赋值

  1. a=1

let 声明

规则

  • 遵循块作用域,即使用范围不超过{}
  • 不能重复声明
  • 可以赋值,也可以不赋值
  • 必须先声明,再使用,否则报错
  • 全局声明的let变量,不会变成window的属性(var会)
  1. let abc='abc'
  2. window.abc //访问不了

const声明

  • 跟let几乎一样
  • 但是声明时一定要赋值,赋值后不能改
  • 不能和for循环一起用,因为会i++

var 和 let 的区别是什么?

  • let 不会变量提升
  • var会变量提升

var变量提升

  • 使用 var 来声明变量的时候,变量会被提到当前作用域的顶端,而赋值操作在原处不变
  • 变量可以在使用后声明,也就是变量可以先使用再声明。
  1. console.log(a); //undefined
  2. var a=1

相当于

  1. var a
  2. console.log(a)
  3. a=1

JS变量声明 - 图1

变量提升