add: 暂时性死区 DTC

This commit is contained in:
qianguyihao 2020-06-03 23:02:10 +08:00
parent ada7d784c0
commit a89d6be4c7
4 changed files with 86 additions and 5 deletions

View File

@ -125,6 +125,12 @@ function foo() {
打印结果undefined注意打印结果并没有报错而是 undefined这个例子再次说明了变量 i 在函数执行前就被提前声明了只是尚未被赋值 打印结果undefined注意打印结果并没有报错而是 undefined这个例子再次说明了变量 i 在函数执行前就被提前声明了只是尚未被赋值
例4中 `if(false)`里面的代码虽然不会被执行但是整个代码有**解析**的环节解析的时候就已经把 变量 i 给提前声明了
**总结**
既然JS中存在变量提升的现象那么在实战开发中为了避免出错建议先声明一个变量然后再使用这个变量
### 函数的声明提前 ### 函数的声明提前

View File

@ -0,0 +1,64 @@
## varletconst的区别
### var声明的变量存在变量提升let和const声明的变量不存在变量提升
var 声明的变量
```js
console.log(a); // 打印结果undefined ==> a已经声明但没有赋值
var a = '我是a';
```
let 声明的变量
```js
console.log(b); // 打印结果报错Uncaught ReferenceError: Cannot access 'b' before initialization ==> 找不到b这个变量
let b = '我是b';
```
const 声明的变量
```js
console.log(c); // 打印结果报错Uncaught ReferenceError: Cannot access 'c' before initialization ==> 找不到c这个变量
const c = '我是c';
```
### 暂时性死区 DTC
举例1表现正常
```js
const name = 'qianguyihao';
function foo() {
console.log(name);
}
foo(); // 执行函数后打印结果smyhvae
```
上方例子中 变量 name 被声明在函数外部此时函数内部可以直接使用
**举例2**报错
```js
const name = 'qianguyihao';
function foo() {
console.log(name);
const name = 'hello';
}
foo(); // 执行函数后控制台报错Uncaught ReferenceError: Cannot access 'name' before initialization
```
代码解释如果在当前块作用域中使用了变量 name并且当前块作用域中通过 let/const **使 DTC**DTC
## 参考链接
- [JS中varletconst区别](https://juejin.im/post/5e49249be51d4526e651b654)

View File

@ -405,7 +405,18 @@ alter table 表名 add 新字段名 字段类型 字段位置;
``` ```
**举例** **举例1**
`name`字段的后面新增一个 `sex` 字段
```sql
alter table t_qiangu1 add sex varchar(255) default null comment '性别' after name;
```
注意上方举例中如果是新建 varchar 类型的字段一定要指定 varchar 的长度比如255否则报错
**举例2**
新增一个 `id` 字段放到最前面 新增一个 `id` 字段放到最前面
@ -413,11 +424,7 @@ alter table 表名 add 新字段名 字段类型 字段位置;
alter table t_qiangu1 add id int first; alter table t_qiangu1 add id int first;
``` ```
`name`字段的后面新增一个 `sex` 字段
```sql
alter table t_qiangu1 add sex varchar(255) after name;
```
### 3change修改现有字段的字段名 ### 3change修改现有字段的字段名

View File

@ -7,6 +7,10 @@
React 中的 setState 是异步操作 React 中的 setState 是异步操作
### 2020-03-27
- [颜值即正义那些管UI小姐姐要来的网站](https://juejin.im/post/5e7cdee26fb9a03c6e640cc7)
### 2020-04-09 ### 2020-04-09
- [使用 ImgBot 自动为 Github 项目优化图片](https://www.cnblogs.com/lfri/p/12257277.html) - [使用 ImgBot 自动为 Github 项目优化图片](https://www.cnblogs.com/lfri/p/12257277.html)