# 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