Open KieSun opened 4 years ago
2019-11-20:Promise学习总结(2)https://www.cnblogs.com/zxmonster/p/11895734.html
2019-11-20: 深入学习ES6作用域 for(let i of [1,2,3])
打卡(2019/11/20)
1、什么是丑数
2、ES6 数组去重 Set Array.from 类数组转换成数组
3、Map 的妙用
4、冒泡排序 选择排序
笔记连接 https://juejin.im/post/5dd532e2f265da47d67c20b3
打卡 今天工作中进行表格的二次封装改进 学习了axios的源码 学习了九种跨域方式的体现
2019-11-20 学习日记:
关键词:CSS、CSS盒模型
CSS盒模型的三维立体结构 如下:
学习如何使用async & await 时优雅的处理。。这个文章讲的挺好的https://juejin.im/post/5dd1498df265da0bd315cca8
读书笔记
1.单元测试应该在最基本的功能/参数上验证程序的正确性 2.单元测试必须由程序的作者来写 3.单元测试后,及其状态不变 4.天下武功,唯快不破 5.产生可重复一致性结果 6.独立性,单元测试的运行/通过/失败不依赖于别的测试。保持单元测试的独立性 7.集成到自动测试框架中 8.产品代码一起保存
useModal 避免hide时由于清空弹窗的值导致弹窗关闭时闪现的问题。 export const useModal = (initTitle: string, initContent: string | React.ReactElement) => { const [visible, setVisible] = useState(false); const [title, setTitle] = useState(initTitle); const [content, setContent] = useState(initContent); const CustomModal = () => { return ( <Modal visible={visible} title={title} closable={false} footer={null}
{content} ); } const show = (content?: string | React.ReactElement) => { content && setContent(content); setVisible(true); }; const hide = (delay?: number) => { if (delay) { setTimeout(() => setVisible(false), delay); } else { setVisible(false) } }; return { show, hide, CustomModal, setTitle, setContent } }
今天迁移博客文章时候 看到了之前写的chrome浏览器推送实现 感觉再次看到service worker生疏了, 一方面因为当时理解没到位,另一方面感觉是该复习了,最近想整理一个系列关于service worker应用的,比如离线缓存, 推送广告, 以及断网时保存数据恢复网络时更新数据之类的场景,今天看了upup.js的源码,他是对SW API的一个封装 https://dev.opera.com/articles/offline-with-upup-service-workers/
20号打卡:
看了方应杭的react造轮子
1-3章 了解lisp 函数式编程入门
理解了 为什么递归叫递归 迭代叫迭代 以及高阶函数的定义
webpack深入学习,编写loader http://study.maqixiang.com/webpack-loader.html#webpack-loader
11月21日学习总结: 1.nodeJs中的koa,koa更小更轻便,定制性更高,没有express的路由等功能,需要配合koa生态圈来解决,koa解决了express异步的问题,koa可以使用async awiat关键字来创建函数,解决异步问题,koa把response和request都挂载在context对象上,这样我们自己的一些变量也可以统一挂载在context对象上,koa用的时候要通过new 关键字,示例use(‘/’,function(ctx,next){}) 2.如何系统的优化页面:https://time.geekbang.org/column/article/143889
2019-11-21 leetcode-有效的括号
看了vue-element 关于el-input的源码 leetcode: 压缩字符串
我学了,ts中内置的内置对象,常用的邮4种Boolean、Error、Date、RegExp等;
let b: Boolean = new Boolean(1);
let e: Error = new Error('Error occurred');
let d: Date = new Date();
let r: RegExp = /[a-z]/;
2019.11.21:es6 Symbol学习及总结https://www.cnblogs.com/zxmonster/p/11903849.html
2019-11-21 打卡:阅读程序员修炼之道 程序猿修炼之道-注重实效的哲学
2019-11-21 日有所长 用装饰器实现截流与防抖https://juejin.im/post/5dd6870e5188254e237c81ce
for循环创建dom使用cloneNode即可;
var dom=document.querySelector('.id');
for(let i=0;i<10;i++){
dom.innerHTML=i;
console.log(i)
document.querySelector('body').appendChild(dom.cloneNode(true))
}
打卡 今天工作中进行表单封装的确认 进一步学习了JS执行时浏览器的内存分配
打卡(2019/11/21) 常见的算法学习 地址: https://www.cnblogs.com/libin-1/p/7719537.html
21号打卡: 实现一个简易版的新闻头条(h5端), 项目覆盖了:webpack工程化,前端项目架构,组件化模块化,前端分页机制,前端数据结构化,前端数据缓存,模板替换机制,异常处理技巧。
阅读构建之法第三章 学习最短路径
22号学习日志
11月22日学习总结:1 nodeJs中与服务端通信rpc,ajax通信是基于tcp的,是通过地址发往dns的,然后dns解析域名返回ip,然后再发往服务端,服务端再返回数据,而rpc会更根据id寻址,然后返回ip,rpc是基于tcp或udp,tcp有单工通信,半双工通信,双工通信三种模式,单工通信是客户端往服务端发信息,全部发完后服务端才会给客户端发信息,半双工通信是客户端往服务端发一条信息,服务端返回一条信息,全双工通信指客户端与服务端可以随时通信,rpc发往服务端的数据更小,因为是二进制传输,ajax是json或html传输 2虚拟DOM和实际的DOM有何不同:https://time.geekbang.org/column/article/144569
再次理解了前端堆栈队列关系,加深对event loop的理解 leetcode:构造矩形
2019-11-22 sass学习小结
2019.11.22:es6 Interator学习总结https://www.cnblogs.com/zxmonster/p/11910732.html
简单通用的发布订阅模式:
class Event {
constructor() {}
crop = {}
on(key, fn) {
if (!this.crop[key]) {
this.crop[key] = []
}
this.crop[key].push(fn);
console.log('我写的是', this.crop[key])
}
emit() {
let key = [].shift.call(arguments), //采用数组的方法,取到第一个key值
fns = this.crop[key];
console.log(key, fns)
if (!fns || fns.length === 0) { //规避 装注册函数的数组不存在发生的报错行为
return false;
}
fns.forEach(fn => {
fn.apply(this, arguments);
})
}
remove(key, fn) {
let fns = this.crop[key]; //我们先拿到整个装注册函数的盒子
if (!fns) return false; //规避 装注册函数的数组不存在发生的报错行为
if (!fn) return (fns && (fns.length = 0)) //触发函数不存在,清空 整个数组
else {
fns.forEach((ele, index) => {
if (ele === fn) {
fns.splice(index, 1)
}
})
}
}
}
let demo = new Event;
document.querySelector('.input').addEventListener('change', function (e) {
demo.emit('join', e.target.value)
}, false)
function join(data) {
console.log('狗蛋订阅的数据', data)
}
function join2(data) {
console.log('翠花订阅的数据', data)
}
function join3(data) {
console.log('狗剩订阅的报纸', data)
}
function join4(data) {
console.log('曹操的订阅的信', data)
}
demo.on('join', join);
demo.on('join', join2)
demo.on('join', join3)
demo.on('join', join4)
demo.remove('join', join2)
2019-11-22打卡 设计模式之美: 基于接口而非实现编程
从这个人博客里面看到几篇关于JS的文章将的非常好 做了笔记 准备整理一下发到掘金 https://dmitripavlutin.com
今天学习了call,apply,promise的手写
关于今天误打误撞成功使用 typescript 管理接口返回的数据的思考 , 有些点待思考 https://github.com/leoljustsave/A-hour-a-day/blob/typescript/typescript/article/%E6%8E%A5%E5%8F%A3%E7%AE%A1%E7%90%86.md
2019-11-22 学习日记:
关键词:BFC
特性:
生成:
作用:
2019-11-22 日有所长 用栈实现队列https://juejin.im/post/5dd8031a518825732c764948
打卡2019/11/11 打卡学习 typescript 基础类型 学习地址https://www.tslang.cn/docs/handbook/basic-types.html
22号打卡 看视频学习ts 1-12 https://www.bilibili.com/video/av38379328?p=12 23号看完
mooc视频 jest自动化测试 leetcode 最大子序和
深入浅出vue.js
自学小组打卡专用
每日需打卡以下内容:
当然特殊情况可请假当日打卡,一周两次。
注意:请把群昵称改成 Github 昵称,便于踢人。