#变量
有 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.为了节省内存的开关释放
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。