ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### let命令 #### let基本用法 ES6新增了 `let` 命令,用于声明变量, `let` 声明的变量只在其所在代码块内有效。 #### 不存在变量提升 `var` 会发生变量提升现象,即变量可以在声明之前使用,值为 `undefined`, `let` 命令声明的变量必须在声明之后才能使用,否则就会报错 #### 暂时性死区 ES6规定,如果区块中存在 `let` 和 `const` 命令,则这个区块对这些命令声明的变量从一开始就形成封闭作用域。在代码块中,使用 `let` 命令声明变量之前,该变量都是不可用的,这在语法上称为"暂时性死区" ES6规定暂时性死区和不存在变量提升的行为,主要是为了减少运行时错误,防止在变量声明前就使用这个变量 #### 不允许重复声明 `let` 不允许在相同作用域内重复声明同一个变量。 ### 块级作用域 ES5只有全局作用域和函数作用域,没有块级作用域 #### ES6的块级作用域 `let` 实际上为JavaScript新增了块级作用域,且允许块级作用域的任意嵌套。 #### 块级作用域与函数声明 ES6引入了块级作用域,明确允许在块级作用域之中声明函数。ES6规定,在块级作用域之中,函数声明语句的行为类似于 `let` ,在块级作用域之外不可引用。 ### const #### const基本用法 `const` 声明一个只读的常量,一旦声明,常量的值就不能改变。 `cosnt` 一旦声明常量,就必须立即初始化,不能留到以后赋值。 `const` 的作用域与 `let` 命令相同:只在声明所在的块级作用域内有效。 `const` 命令的敞亮也不会提升,同样存在暂时性死区,只能在声明后使用。 #### ES6声明变量的6中方法 - `var` (ES5) - `function` (ES5) - `let` - `const` - `import` - `class`