js只存在全局作用域和函数作用域。

var声明变量存在的三个问题

  • 可以重复声明:var a=1; var a=2; //不会报错
  • 没有块级作用域:if(true){ var a=10; } console.log(a); //输出a=10
  • 不可以定义常量:var PI=3.14; PI=3.15; //赋值成功,不会报错