1.变量 2.es6 的暂死区域 3es6的解构赋值 4.fucntion 和箭头函数

发布于:2023-01-06 ⋅ 阅读:(404) ⋅ 点赞:(0)

#变量

有 let  const  var 三种

let 用来声明的  变  量,不可以重复声明,但可以重新赋值

var  用来声明变量的,可以重新赋值,也可以重复声明

const 用来声明  常  量的,常量称为只读数据

         一旦声明,必须赋值不可修改。使用const声明的常量不可以重复声明更不可以重复赋值。

##相同点

都是声明关键字

##不同点

1. 变量提升只有var

2. 作用域:var 声明的变量存在于window顶级对象中,let和const的变量存在于独立的块级作用域中。

3. let可以重复赋值,const不可以重复赋值

### 三者的使用场景

1. let特别适合在for循环中的定时器里使用,作为强类型语法限制的变量。
2. const适合作为一次性赋值的常量,多用于数据的版本号或id。
3. var适合用来兼容老的IE浏览器,对于很久的项目使用的比较多,目前推荐使用let替代。

#es6的 暂时性死区

原因就是let和const的块作用域的特性。
当let或const放在{}里,这个{}就会变成块级作用域,被let或const声明的变量锁死,故叫暂时性死区

在ES5时代,作用域只有全局的window和局部的函数作用域,受条件限制,for循环,if和switch里的变量会污染全局,现在有了let和const之后,凡是有{}的代码块里面使用const或let,则{}就会变成块级作用域

#es6的解构赋值

 1. 使用{}去解构,不光解构自身的属性还会解构原型上的属性
    2. 对于对象自身没找到的属性,解构出来的变量的值是undefined
### 数组
1. 使用[]去解构,按顺序解构
2. 对于不存在的,得到的值也是undefined

#fucntion 和 箭头函数

### 相同点
1. 都是函数
2. 都有它的局部作用域
### 不同点
1. 语法不同
2. this指向不同
    1. function指向调用它的对象
    2. 箭头指向上一层作用域里的对象
3. 不定参伪数组
4. 箭头函数不可以作为构造函数使用,不可以使用new调用
5. 箭头函数没有原型对象
6. 箭头函数只能是匿名函数
7. 箭头函数不能改变this指向

函数的重载
一个函数根据传入不同的参数,执行不同的业务,实现不同的效果
函数的尾部调用
一个函数返回的是另一个函数的返回值
目的:
1数据的传递和加工
2.为了节省内存的开关释放


网站公告

今日签到

点亮在社区的每一天
去签到