js
迟来的阿牛
回复不及时,有问题微信 940391955
展开
-
js中双问号??和双竖杠||的区别
双竖杠||,将前面的值自动转为布尔值并且为false时,就取后面,否则取前面,如undefined、null、false、空字符串和数值0例:console.log(0||33)打印出33而双问号则为:前面的值为null、undefined,则取后面的值,否则都取前面的值。例:console.log(0??33)打印出0由此可以发现,双问号??更加适合在不知道变量是否定义时,或者是否赋值时的场景来使用。...原创 2021-07-16 19:34:23 · 1129 阅读 · 1 评论 -
js实现一个lazyman
需求:js实现一个LazyMan,能按以下方式调用:> LazyMan(“hank”).sleepFirst(2).eat(“晚餐”)在两秒后打印出我睡了2秒你好,我是hank吃晚餐<script> LazyMan = (name) => { var queue = [] const task = () => { console.log(`你好,我是${name}`); next() }原创 2021-03-21 17:29:05 · 510 阅读 · 0 评论 -
Vue3 diff算法
Vue2 diff执行的updatevnode会优先处理特殊场景,即头头比对,头尾比对,尾头比对等。原创 2021-02-12 09:21:27 · 638 阅读 · 1 评论 -
async实现原理
async是generator的语法糖,async=Generator+co(自动执行器)了解其原理首先得来看看generator。node=>express=>koa=>koa2其实就是回调=>promise=>generator=>async从上述演变中看出generator也是处理回调的一种方式。Generator示例:var a=1;function *fun(){ a++; yield 'xixihaha' a++; console.log原创 2020-08-27 00:45:27 · 554 阅读 · 0 评论 -
MVVM简易实现源码
贴上代码便于日后复习文件如下:index.htmlMVVM.jsobserver.jscompile.jswatcher.jsindex.html:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewpo...原创 2020-03-22 12:58:28 · 596 阅读 · 0 评论 -
Vue.use()的实现
Vue.use(插件名)用于引入插件打个断点看看它的实现function initUse (Vue) { Vue.use = function (plugin) { var installedPlugins = (this._installedPlugins || (this._installedPlugins = [])); if (installedPlu...原创 2019-12-28 19:05:36 · 457 阅读 · 0 评论 -
js策略模式
策略模式简介定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换策略模式优点策略模式可以有效地避免多重条件选择语句。支持对修改关闭,对扩展开放原则算法可复用性强在策略模式中利用组合和委托来让 Context 拥有执行算法的能力,这也是继承的一种更轻便的替代方案。本文参考书籍:JavaScript设计模式与开发实践例一使用策略模式计算奖金以计算年终奖为例:绩效考核...原创 2019-12-06 17:27:37 · 381 阅读 · 0 评论 -
手写Promise
按照Promises/A+规范,手写一个Promise原创 2019-11-17 15:33:12 · 477 阅读 · 2 评论 -
js浅拷贝深拷贝
浅拷贝和深拷贝的基本概念今天无意间又看到了这个知识点,那就写写笔记及小结,有时可能理解了一个知识点并不够,亲自讲清楚给别人听才是真正的消化并提高。还是亲手画一张草图先捋清楚概念。(首先搞清楚浅拷贝和深拷贝的概念是在引用类型这个分支下面的,它们和基本类型没有啥关系)基本类型和引用类型关于基本类型引用类型的介绍网上已经有很多介绍了,那这里我就简单举两个例子带过。基本类型var a=1...原创 2019-10-22 21:40:40 · 1902 阅读 · 0 评论 -
数组的map find filter内部模拟实现
1.数组map()方法的实现:遍历数组数据并将其回调,再将所有返回值添加到新数组中Array.prototype.mymap = function(callback) { let newArr = []; for (let i = 0; i < this.length; i++) { let item = this[i]; let index = i; let arr...原创 2019-09-28 19:54:57 · 362 阅读 · 0 评论 -
js计算页面有多少标签
记录此行代码加深对基础的学习。new Set([...document.querySelectorAll('*')].map(index => index.tagName))测试结果如下:原创 2019-09-17 08:22:58 · 415 阅读 · 0 评论 -
ajax post导出excel(解决乱码问题)
当前有一个需求 前端对当前页面的数据做筛选之后需要将其导出至excel文件且发送的请求需传入需验证的参数如页面token信息尝试了form提交及其他方法后出现excel乱码等问题 最后用ajax成功完成了导出。直接贴代码:下面是解释:xhr.responseType = “arraybuffer”;这段代码不加会导致导出的excel出现乱码问题。xhr.onload内操作如下:使用...原创 2019-07-29 00:08:26 · 5328 阅读 · 1 评论