
es6
MING23333
这个作者很懒,什么都没留下…
展开
-
对象和数组的解构,rest操作符
1.数组的解构赋值let [a,b,c]=[1,2,3];let [foo,[[bar],baz]]=[1,[[2],3]];foo //1bar //2baz //3let [ , , third]=["foo","bar","baz"];thrid //"baz"let [x, , y]=[1,2,3];x//1y//3let[head, ...tail]=[1,2,3,4];head //1tail //[2,3,4]let[x,y, ...z]=['a'];x//'原创 2020-09-28 14:59:29 · 337 阅读 · 0 评论 -
块级作用域,模板字符串
1.let(1):let用来声明变量,其用法类似于var,但是其所声明的变量,只在let命令所在的代码块内有效(2):let所声明的变量不存在变量提升现象,即声明的变量一定要在声明后使用,否则报错。(3):暂时性死区只要块级作用域内存在let命令,其所声明的变量就“绑定”在这个区域,不再受外界影响var a=1;if(true){a='qwe';//ReferenceErrorlet a:}在上面代码中,a为全局变量var定义,但是在块级作用域中,将a以局部变量let定义,故而,在le原创 2020-09-27 16:08:19 · 228 阅读 · 0 评论 -
let与const
let1.let声明的变量没有变量提升2.let不允许重复声明3.let声明变量不会给全局对象window增加属性;const1,const声明变量必须赋值2,const声明变量不屑修改3,let的特点const都有...原创 2019-09-01 20:34:49 · 182 阅读 · 0 评论 -
解构赋值
什么是解构赋值语法上就是赋值作用解构是一种结构,右边一种结构,左右一一对应进行赋值分类数组解构赋值,对象解构赋值,字符串解构赋值,布尔值解构赋值,函数解构赋值,数值解构赋值数组解构赋值{let a,b,rest;[a,b]=[1,2];console.log(a,b);}{let a,b,rest;[a,b,....rest]=[1,2,3,4,5,6];}对象解构...原创 2019-09-01 20:47:57 · 197 阅读 · 0 评论 -
callback回调函数
回调函数:把任务第二段单独写在一个函数里,等到重新执行这个任务时,就直接调用这个函数;例fs.readFile('/etc/passwd',function(err,data){if(err)thow err;console.log(data);});上述代码中readFile函数第二个参数就是回调函数,也是任务第二段,等到操作系统返回了/etc/passwd文件后,回调函数就会执行...原创 2019-09-01 20:53:52 · 616 阅读 · 0 评论 -
Generator
异步编程有一种叫做”协程“,意为多个线程相互协作完成异步任务协程运行流程一,协程A开始执行二,A执行到一半,进入暂停,执行权交由协程B;三,(一段时间后)协程B交还执行权四,协程A恢复执行例function async(){//其他代码var f=yield readFile(fileA)//..其他代码}yield命令表示执行到此处,执行权交给其他协程,即yield命...原创 2019-09-01 22:41:34 · 268 阅读 · 0 评论 -
箭头函数this的指向问题
普通函数:(谁调用,this指向谁)箭头函数:根据创建时所在的环境(我在那个环境中创建,this就指向那)例Documnet.οnclick=function(){Alert(this);//HTMLDocument}Document.οnclick=()=>{Alert(this);//window}例2:Document.οnclick=function(){Le...原创 2019-09-02 18:30:40 · 225 阅读 · 0 评论 -
map与set
1.Set本身为一个类似于数组构造函数,但set成员值是唯一的没有重复的值例const s=new set();[2,3,5,4,5].forEach(x=>s.add(x));for(let i for s){console.log(i);}//2,3,5,4set函数可以接收一个数组作为参数;例const set=new Set([1,2,3,4,5,5]};[....原创 2019-09-02 18:31:38 · 177 阅读 · 0 评论