
原生
你才不是没有故事的女同学
这个作者很懒,什么都没留下…
展开
-
rem初始化
const docEl = document.documentElement const dpr = window.devicePixelRatio || 1 const BASE_SIZE = 100; const deviceWidth = docEl.clientWidth function setRemUnit () { docEl.style.fontSize = deviceWidth / BASE_SIZE * dpr + 'px' } window.addEventListene原创 2021-07-25 21:04:17 · 230 阅读 · 0 评论 -
安装美丽的iterm2,从零开始,避免踩坑
1. 安装 iTerm2官网下载 2. 打开iTerm2,下面的操作在iTerm2上执行 3. 安装 oh-my-zsh curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 如果出现 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused 可以执行下面这句 443 端口连接被拒原创 2021-06-16 17:11:35 · 5922 阅读 · 0 评论 -
js一个数组元素被另一个数组完全包含
数组arr2的元素完全被数组arr1完全包含 自己总结了下面几种方法,同时也用了 performance.now() 去检测性能 总体来说,数据量大时,用Set和Map执行时间最短 执行时间最短的按下面的方式来说,Set方式执行时间最短 没有做复杂类型的判断,有需要的可以自己在下面的函数进行拓展 // 生成随机字符串 function randomString(e) { e = e || 32; var t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwx原创 2021-06-10 14:24:24 · 783 阅读 · 0 评论 -
说说你了解的设计模式
单例模式: **好处:**减少全局变量,全局对象被污染问题 实现: 懒汉式 let ShopCar = (function () { let instance; function init() { /*这里定义单例代码*/ return { buy(good) { this.goods.push(good); }, goods: [], }; } return { getInstance: functio原创 2021-03-21 23:45:19 · 257 阅读 · 0 评论 -
手写promise
今天先实现了简洁版的promise class Promise1 { static PENDING = "Pending" static FULFILLED = "Fulfilled" static REJECTED = "Rejected" constructor(executor) { this.initValue() this.initBind() try { executor(this原创 2021-03-18 00:06:26 · 76 阅读 · 0 评论 -
说说你对闭包的理解
要理解闭包,首先得先知道js的作用域和词法作用域 作用域 作用域就是用于确定变量在何处以及如何查找变量的规则 作用域就是查找变量的地方 作用域链:从下往上找,从该函数作用域中,一直往上面的作用域中找,如果找到了就停止寻找并返回,直到全局作用域中。 JavaScript也是有编译过程的 console.log(name); // 输出undefined var name = 'iceman'; 编译的时候在作用域中声明了一个name属性 运行的时候给这个name赋值 js在预编译后执行代码时就会进原创 2021-03-16 23:55:52 · 180 阅读 · 0 评论