CodingWithAlice

我的一方小天地,如果对你有帮助,那真的太好了

vue实现双向绑定的原理

vue实现双向绑定的原理 MVVM 模式在于数据与视图的保持同步,意思是说 数据改变时会自动更新视图,视图发生变化时会更新数据。所以我们需要做的就是如何检测到 数据的变化 然后通知我们去 更新视图,如何检测到 视图的变化 然后去 更新数据。 检测视图 这个比较简单,无非就是我们 利用事件的监听即可。 那么如何才能知道数据属性发生变化呢?这个就是利用我们上面说到的 Object....

十进制转任意进制(JS)

十进制转任意进制(JS) 题目来源:美团一面 题目:输入数字M和进制数N,写一个方法得到M换算成N进制的结果 function solve(M, N) { let res = []; // 注意这里要 = 号 while(M >= N) { res.push(M % N); M = Math.floor(M / N); ...

Object属性排序、与Map的区别

Object属性排序、与Map的区别 1、Object 中各属性排序规则 非负整数 会最先被列出,排序是从小到大的数字顺序 正数字 > 字符串 > 负整数 > 浮点数 > Symbol,顺序是根据插入的顺序 2、JSON 默认不支持 Map,但是可以转一层 若想要通过 JSON 传输 Map 则需要使用到 .toJSON() 方法,然后在 ...

onLoad & onReady

onload & onready 浏览器加载的步骤: 解析html结构; 加载外部 js 脚本和样式表文件;(预扫描) 解析并执行 js 脚本; dom树构建完成 - html 解析完毕(完成后触发 onready -> 即 DOMContentLoaded); DOMContentLoaded 定义:当纯HTML被完全加载以及解析时,...

柯里化函数实现

柯里化函数实现 柯里化是把 接受 多个参数 的函数 变换成 接受一个 单一参数 的函数,并且返回 接受余下的参数而且返回结果的新函数 的技术。 // 更简洁、更现代化的方式 function curry(fun, ...args) { if(args.length >= fun.length) { return fun(...args) } else...

常见Webpack问题

常见Webpack问题 总结: webpack的几个核心概念理解:Chunk、Module、plugin 2、常见配置项:entry、output、module、resolve等 自定义 loader 怎么配置? Code Splitting 和 Tree Shaking 的区别?懒加载怎么实现? ...

babel深入

babel深入 参考文章:一口(很长的)气了解 babel、深入Babel,这一篇就够了 核心要点记录 babel 总共分为三个阶段 解析 @babel/parser 通过 babyIon(7.x改名为@babel/parser)实现:先 词法分析 把字符串形式的代码解析为 令牌tokens 流 (类似 AST...

Uglify - 代码压缩原理

Uglify - 代码压缩原理 参考文章:[从一个误写的逗号谈开去——JS代码是如何被压缩的](https://www.h5w3.com/19480.html) 核心要点记录: 代码压缩原理 示例: 原始代码 code:var a;var x = { b: 123 };a = 123,delete x; 压缩后 code:var a,x={b:123};a=123,del...

大量图片加载优化

大量图片加载优化 大量图片带来的问题 1、并发数量限制带来的 排队时间:浏览器对于同一个域名,最多支持 6 个请求的并发(HTTP/1.1限制),其他的请求将会推入到队列中等待或者停滞不前,直到六个请求之一完成后,队列中新的请求才会发出 2、某些图片 体积大,下载慢 解决方案 1、针对 非首屏视口 需要的资源 延迟加载; 2、域名切分,同时期可以发起 更多的并发请求; ...

防抖节流

防抖节流 防抖、节流 这个写的很好,平时键盘抬起就会搜索,防抖后,间隔一段时间不输入才会搜索,节流后,可以做到不管是否停止打字,间隔一段时间都会搜索。 还参考了另一篇博文:JavaScript专题之跟着underscore学防抖 总结 - 记住例子: 函数防抖 - 类似法师技能读条,还没读完条再按技能,会重新读条 防抖的原理就是:你尽管...