# ESC6
**Repository Path**: huangfeng0618/ESC6
## Basic Information
- **Project Name**: ESC6
- **Description**: 腾讯课堂:笔记
郑潇冰的ECMAScript 6 快速入门
https://ke.qq.com/webcourse/index.html#cid=181775&term_id=100214873&taid=1062046628234767
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2020-02-29
- **Last Updated**: 2020-12-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ESC6
#### 项目介绍
腾讯课堂:笔记
郑潇冰的ECMAScript 6 快速入门
https://ke.qq.com/webcourse/index.html#cid=181775&term_id=100214873&taid=1062046628234767
#### 软件架构
软件架构说明
#### 1-let 定义变量+例子(点击按钮,出现对应点击序号)
新增的功能:
let a =12;
代码块:{ }包起来的代码,形成一个块作用域
比如:if for while
特点:只能在代码块使用
var 只有函数作用域
特点:
a:let具备块级作用域
b:不允许重复声明
let a=12;
let a=5; //错的
总之:其实let才是接近其他语言的变量
注意,let只要是花括号{ }包起来的东西,外面都不能访问了
用处:
封闭空间:
(function(){
var a=12;
})()
现在:
{let a=12}
应用:封闭空间可以解决i的问题
例子如下:点击按钮,出现对应点击序号
以上是不对的!点完之后都为3
引出封闭空间
现在的话:直接使用let,确定作用域块了
for(let i=0;i
var [a,b,c] = [1,2,3]
console.log(a,b,c)
和json配合:和顺序无关
var {aa,bb,cc} = {aa:11,cc:22,bb:33}
console.log(aa,bb,cc) //11 33 22 和顺序无关
模式匹配:--左侧的样子,需要和右侧一样
var [a,[b,c],d] = [1,[2,3],4] console.log(a,b,c,d)
var [{a,e},[b,c],d] = [{e:'eee',a:'aaa'},[3,4],5] console.log(a,b,c,d,e)
交互:数据解析
[{title:'',href:'',img:''}]
应用:交互
例子一:
例子二:
var arr = [{title:"hjt",age:18,img:"img1"}]
var [{title,age,img}] = arr
console.log(title)//hjt
解构赋值-还可以给默认值
var json={}
var a=json.a||12
语法:
var {time=12,id=0} = {};
应用在之前的例子——运动框架:
function move(obj,json,options){
options = options || {};
options.time = options.time||300;
}
function move(obj,json,{time=300}={}){
}
解构赋值-返回值
function show(){
return {left:100,topp:200}
}
var {left,topp} = show();
console.log(left, topp) //100 200
接下来:复制数组
#### 5-复制数组--引出三个点
复制数组:
a:循环
b:Array.from(arr)
c:var arr2 = [...arr]
function show(...args){
args.push(5);
console.log(args)
}
show(1,2,3,4
例1:-这个直接赋值,是不行的
var arr1 = [1,2,3]
var arr2 = arr1
arr2.pop()
console.log(arr1,arr2);
这个方法不行,一旦arr2改变,arr1的数就会发生变化。
例2:-可以用for遍历复制:
var arr1 = [1,2,3];
var arr2 = [];
for(var i=0;i")
var arr3 = [1,2,3,4,5,6,7];
var arr4 = Array.from(arr3);
arr4.pop();
console.log(arr3,arr4)
例4:-[...arr] ------三个点(超引用)
var arr5 = [1,2,3,4];
var arr6 = [...arr5];
arr6.pop();
console.log(arr5,arr6)
三个点的用法:
可以使argument对象,在用的时候变成数组
错误用法:
// function add(){
// console.log(argument)//会提示argument is not defined
// }
// add(1,2,3)
正确用法:
function add2(...args){
args.push(5)
console.log(args)
}
add2(1,2,3)
接下来:循环
#### 6-循环-for...of--map对象
循环:
普通for
for in
for of 循环,可以循环数组,但是不能循环json,真正目的是为了循环 map对象(下面见)。
遍历(迭代、循环)整个对象,表现类似for in
var arr = ['apple','banana','pear','orange']
for(var i=0;i