1:let和const:作用域,全局作用域,函数作用域以及块级作用域(es6)。
let声明的变量只在块级作用域内有效,用大括号括起来的部分都叫块级作用域。在块级作用域中不能用let重复声明相同的变量。
const用来声明常量,常量不允许修改。const也有块级作用域的概念,声明的时候必须赋值。let和const不能在同一级作用域内重复定义,const不能在同一级作用域内修改常量的值。在不同的块级作用域里面,可以声明重复的变量以及常量。如果用const去声明一个对象的时候,可以修改对象的值。
在两个js文件中,一个js文件引入了另一个js文件,如果想要修改另一个文件中定义的变量或者常量,那么可以采用import * as obj from ''./calss.js''的形式修改。注意:在修改一个常量的时候,会报错,但是浏览器正常运行,在gulp的打包工具中加入// noinspection JSAnnotator则不会报错,正常运行。
es6强制开启严格模式!变量未声明不能引用。
let和const不存在变量提升,有暂时性死区,所以变量要提前声明。