用生成器函数和Promise改善异步流程
最近在学习JavaScript异步相关的知识,在学到Generator(生成器函数)、Promise 和 async-awiat 等相关对异步优化的内容时遇到了一些一时没有理解的东西。本文仅作为学习过程中的笔记分享,第一次发文章,如果错误请不吝指出。
话不多说,进入正题,先写一下在 Generator 中要用到的函数,随便写几个就行。
1234567891011121314151617function getValue(val, duration){ return new Promise(resolve => { setTimeout(() => { resolve(val); }, duration); })}function delay(duration){ return new Promise(resolve => {//delay函数不resolve出任何东西,或者说resolve出undefined ...
this和强制改变this指向
一个函数
123function show(x, y){ alert(this);//[Objes y);//10,20 }
要改变它的this指向,有几种方法:方法1:call 格式: 函数名.call(); 参数:第一个参数:传入该函数this指向的对象,传入什么就强制指向什么 从第二个参数开始,将原函数的参数往后顺延一位 注:call主要目的是为了绑定参数,apply则是出现…运算符之前的老旧写法
1show.call("call", 20, 40);
方法2:apply 格式:函数名.apply(); 参数:第一个参数;传入该函数this指向的对象,传入什么就强制指向什么 第二个参数:数组,放入原有的所有参数
1show.apply("call", [20, 40]);
方法3:bind预设this指向
1234567function show(x, y) ...
认识闭包
满足以下特点的叫做闭包 1、函数嵌套函数 2、内部函数使用外部函数的形参和变量 3、被引用的形参和变量不会被垃圾回收机制所回收
好处: 1、希望一个变量常驻在内存当中 2、避免全局变量污染 避免声明全局变量,比如在函数外声明 3、可以声明私有成员
123456789function a(num1){ var num2 = 10; function b(){ return(num1 + " " + num2); } return b; } var res = a(20); console.log(res());
就是一个闭包
可以实现:1、避免全局污染,2、对a进行累加【注】让a变量常驻内存
123456789101112function aa(){ var x = 2; function bb(){ x+ ...
笔记
HTML + CSSPosition取值和含义?
static:静态定位,是默认值,表⽰⽆论怎么设置 top、bottom、right、left 都不会发⽣改变。
fixed:固定定位,相对于浏览器窗⼝进⾏定位,同样使⽤ top、bottom、right、left。
relative:相对定位,表⽰⽤ top、bottom、right、left 属性可以设置元素相对与其相对于初始位置的相对位置。
absolute:绝对定位,表⽰⽤ top、bottom、right、left 属性可以设置元素相对于其⽗元素(除了设置了 static 的⽗元素以外)左上⾓的位置,如果⽗元素设置了static,⼦元素会继续追溯到祖辈元素⼀直到 body。四种取值中,除了 static 之外,其他属性都可通过 z-index 进⾏层次分级
sticky:粘性定位
如何清除浮动?clear 清除浮动(添加空 div 法)在浮动元素下方添加空 div,并给该元素写 CSS 样式 {clear:both; height:0; overflow:hidden;}给浮动元素父级设置高度父级同时浮动(需要给父级同级元素 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment