1.var的特点
var有变量提升,var可重复声明;没有块的概念,可以跨块访问,不能跨函数访问;
2.let的特点
let没有变量提升,不可重复声明,变量需要先声明后再使用,否则会报错;let是块级作用域;
3.const的特点
(1)const 和 let 同样是块级作用域,不可重复声明,没有变量提升。
(2)const 定义的变量,一旦定义后,就不能更改,所以 const 声明的为常量。
(3) const 定义常量时 声明和赋值必须同时进行 ,不可以只声明。
(4) 不存在变量提升;
4.function的特点
function命令用于定义一个函数,具有以下特点:
1. 函数声明后不会立即执行,需要调用的时候才知晓;
2. 对支持ES5和ES6浏览器环境在作用域内有一定区别,所以应避免在块作用域内声明函数。
5.class的特点
ES6语法引入了class关键字,用来定义类,该写法相比于对象原型的方式具有以下特点:
1. 相比于对象原型的方式写法更清晰;
2. 更像面向对象编程的语法;
6.import
ES6在语言标准的层面上实现了模块功能,其中import命令就是用于加载模块,然后输出变量,其具有以下特点:
1. import命令接受一对大括号,其里面的变量名必须与被导入的模块对外的名称相同;
2. 用as关键字可将输入的变量名重名;
3. import命令输入的变量都是只读的;
4. import命令具有提升效果,会提升到整个模块的头部,首先执行(因为import命令是在编辑阶段执行的,在代码运行之前);
5. import是静态执行,不能使用表达式和变量;
6. import会执行所加载的模块。