
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 · 1191 阅读 · 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 · 565 阅读 · 0 评论 -
Vue3 diff算法
Vue2 diff执行的updatevnode会优先处理特殊场景,即头头比对,头尾比对,尾头比对等。原创 2021-02-12 09:21:27 · 727 阅读 · 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 · 601 阅读 · 0 评论 -
MVVM简易实现源码
贴上代码便于日后复习 文件如下: index.html MVVM.js observer.js compile.js watcher.js index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewpo...原创 2020-03-22 12:58:28 · 644 阅读 · 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 · 492 阅读 · 0 评论 -
js策略模式
策略模式简介 定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换 策略模式优点 策略模式可以有效地避免多重条件选择语句。 支持对修改关闭,对扩展开放原则 算法可复用性强 在策略模式中利用组合和委托来让 Context 拥有执行算法的能力,这也是继承的一种更轻 便的替代方案。 本文参考书籍:JavaScript设计模式与开发实践 例一 使用策略模式计算奖金 以计算年终奖为例:绩效考核...原创 2019-12-06 17:27:37 · 418 阅读 · 0 评论 -
手写Promise
按照Promises/A+规范,手写一个Promise原创 2019-11-17 15:33:12 · 518 阅读 · 2 评论 -
js浅拷贝深拷贝
浅拷贝和深拷贝的基本概念 今天无意间又看到了这个知识点,那就写写笔记及小结,有时可能理解了一个知识点并不够,亲自讲清楚给别人听才是真正的消化并提高。 还是亲手画一张草图先捋清楚概念。(首先搞清楚浅拷贝和深拷贝的概念是在引用类型这个分支下面的,它们和基本类型没有啥关系) 基本类型和引用类型 关于基本类型引用类型的介绍网上已经有很多介绍了,那这里我就简单举两个例子带过。 基本类型 var a=1...原创 2019-10-22 21:40:40 · 1928 阅读 · 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 · 400 阅读 · 0 评论 -
js计算页面有多少标签
记录此行代码加深对基础的学习。 new Set([...document.querySelectorAll('*')].map(index => index.tagName)) 测试结果如下:原创 2019-09-17 08:22:58 · 463 阅读 · 0 评论 -
ajax post导出excel(解决乱码问题)
当前有一个需求 前端对当前页面的数据做筛选之后需要将其导出至excel文件 且发送的请求需传入需验证的参数如页面token信息 尝试了form提交及其他方法后出现excel乱码等问题 最后用ajax成功完成了导出。 直接贴代码: 下面是解释: xhr.responseType = “arraybuffer”; 这段代码不加会导致导出的excel出现乱码问题。 xhr.onload内操作如下:使用...原创 2019-07-29 00:08:26 · 5410 阅读 · 1 评论