ES6 ->ECMA标准
ES的进化:



js



ES7,ES8



ES5.x



ECMA-262 -> ES1.0



ES2015 ->ES6



每年六月份发布一个版本



ESnext:‘下一代js语言’


关于定义(声明)变量:

之前 :

var a=12;

作用域:

全局

函数作用域

现在 :

let 相当于之前的var

const 常量,定义好了不能再改变

let 注意:

1.没有预解析,不存在变量提升

在代码块内,只要let定义变量,在之前使用,都会报错

必须先定义完了再使用,如:

<!--补充:-->
<script > let a=12; function fn(){
       alert(a)//TDZ暂时性死区 let a=5;//TDZ结束 } fn(); </script>

2.在同一个作用域里不能重复定义变量

3.for 循环,for循环里面是父级作用域,里面又一个

const:特性和let一样

const定义的变量无法修改,是常量

const定义完变量,必须有值,不能后赋值

块级作用域: { }

if , for , while等的{ }内的代码块