![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前端日志
文章平均质量分 63
ambit_tsai-微信
JavaScript才是世界上最好的语言。
Q群:663286147
邮箱:ambit_tsai@qq.com
主页:https://github.com/ambit-tsai
展开
-
微前端:实现“真正”的技术栈无关
为什么说“真正的技术栈无关”?那是因为目前很多解决方案宣称的“技术栈无关”实现方式都不太理想,自古以来“技术栈无关”做得最好的,当属 `<iframe>`。然而,大部分微前端方案都不约而同地放弃了 iframe 方案,文章 Why Not Iframe 作了说明,iframe 由于良好的隔离性导致应用间的 UI 无法完美融合,比如 iframe 中的弹窗遮罩无法超越 iframe 的边界,因此我们不得不寻求其它解决方案。“技术栈无关”作为微前端的核心价值之一,主要表现为基座应用不限制接入应用的技术栈。原创 2021-03-02 12:23:16 · 335 阅读 · 0 评论 -
ES6中Proxy的兼容处理
Proxy对象用于定义基本操作的自定义行为(如属性查找、赋值、枚举、函数调用等)。由于ES5的限制,ES6新增的Proxy无法被转译成ES5,或者通过Polyfill提供兼容。ES5中无法实现自定义对象的读取属性、属性赋值等行为,然而对于函数调用与实例化,通过对原函数对象进行代理,是可以实现Polyfill兼容的。如下,对Proxy支持的拦截操作apply与construct进行兼容处理。原创 2018-08-04 23:48:01 · 8815 阅读 · 0 评论 -
直接插入排序
直接插入排序(Straight Insertion Sort)是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。本文主要介绍直接插入排序的算法思想,并提供JavaScript实现。原创 2018-07-22 17:11:43 · 184 阅读 · 0 评论 -
Async/Await搭配Decorator实现更优雅的异步编程
随着Async/Await正式纳入ES7标准,这个号称异步编程终级解决方案用的人也越来越多。然而,使用过程中发现await表达式越多,创建Promise对象的冗余代码也越多,优雅感骤降。为此,本文结合装饰器(Decorator)来实现更优雅的异步编程。原创 2018-07-15 18:23:18 · 1146 阅读 · 0 评论 -
动态(gif)、静态图片转换成DataURL(base64编码)格式
当转换远程图片时,可借助canvas的toDataURL方法:1. 通过Image对象或是img元素发起请求,不存在跨域问题;2. 由于canvas固有限制,该方法只能转换静态图片。或借助FileReader的readAsDataURL方法:1. 通过fetch或是ajax发起请求,受跨域问题限制;2. 该方法可以转换任意文件,不仅仅是图片。其中,使用异步交互新星fetch获取远程文件,再调用readAsDataURL方法将其转换DataURL数据;或使用jQuery的ajax方法原创 2018-07-09 00:00:14 · 8168 阅读 · 0 评论 -
中断或取消Promise链的可行方案
当Promise链中抛出一个错误时,错误信息沿着链路向后传递,直至被捕获并终止。本文提供一种中止或取消Promise链的可行方案。原创 2018-06-10 01:15:35 · 11988 阅读 · 8 评论 -
JS的相等比较运算与类型转换
在JavaScript中,相等有两种比较方式:普通相等比较(==,在ECMAScript标准中称为“抽象相等比较”)和 严格相等比较(===)。对于被广泛使用的普通相等比较运算符来讲,不同类型的操作数在进行比较之前,会尝试将两个操作数转换成相同的类型,再作比较运算。而对于严格相等比较运算符来讲,仅当两个操作数的类型相同且值相等时,返回为true。原创 2018-06-16 22:30:59 · 2687 阅读 · 1 评论 -
模态窗口showModalDialog的浏览器兼容解决方案
用chrome调试的时候,点击一个按钮毫无反应,控制台提示showModalDialog不存在。网上查了下,该特性已经从 Web 标准中删除,于是自己动手进行兼容,如下借助window.open对它的行为进行模拟。原创 2018-06-09 16:27:09 · 12586 阅读 · 11 评论 -
JS方法/函数重载的姿势
JavaScript不支持重载的语法,它没有重载所需要的函数签名。尽管JavaScript无法做到真正的重载,但是可以通过检查传入函数中参数的类型和数量并作相应的处理,从而实现重载的效果,曲线救国。原创 2018-06-06 16:23:03 · 7503 阅读 · 3 评论