2019-10 上旬
- 创建于:2019-10-01
- 更新于:2020-03-15
# 2019-10-10: 什么是闭包,如何防止闭包内存泄露
好好想想先 😌
参考链接
一句话
- 它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中
- 在退出函数之前,将不使用的局部变量全部删除(IE)
# 2019-10-09: 什么是调用栈
好好想想先 😌
参考链接
一句话
- 调用栈是解释器(比如浏览器中的 JavaScript 解释器)追踪函数执行流的一种机制。当执行环境中调用了多个函数函数时,通过这种机制,我们能够追踪到哪个函数正在执行,执行的函数体中又调用了哪个函数。
- 每一个进入调用栈的都称为调用帧。
# 2019-10-08: jsBridge 及其原理
好好想想先 😌
参考链接
一句话
- JS 调用 Native
- 注入 API:通过 WebView 提供的接口,向 JavaScript 的 Context(window)中注入对象或者方法,让 JavaScript 调用时,直接执行相应的 Native 代码逻辑,达到 JavaScript 调用 Native 的目的。
- 拦截 URL SCHEME:webivew 跳原生页面
- Native 调用 JS:直接通过 webview 调用 window 上的方法
- JS 调用 Native
# 2019-10-07: 什么是 csrf
好好想想先 😌
参考链接
一句话
- CSRF,即(Cross-site request forgery), 中文名为跨站请求伪造
- 请求是跨域的。可以看出请求是从恶意网站 B 上发出的
- 通过 img, script 等标签来发起一个 GET 请求。因为这些标签不受同源策略的限制
- 发出的请求是身份认证后的。这一点是 CSRF 中最重要的一点
- 防范:校验 referer,添加 token
# 2019-10-06: 怎样用 Chrome 进行性能分析
好好想想先 😌
参考链接
一句话
- HTML 文件为蓝色。
- 脚本为黄色。
- 样式表为紫色。
- 媒体文件为绿色。
- 其他资源为灰色。
# 2019-10-05: 301, 302, 304 状态码
好好想想先 😌
参考链接
一句话
- 301 - 永久重定向
- 302 - 临时重定向
- 304 - 缓存
# 2019-10-04: webpack output.globalObject
的作用
好好想想先 😌
参考链接
一句话
- 默认为
window
umd
模块规范会将库挂载只全局,此时需要用到globalObject
- 默认为
# 2019-10-03: 什么是层叠上下文、层叠等级和层叠顺序。
好好想想先 😌
参考链接
一句话
- 如何形成层叠上下文
- 层叠等级
- 层叠顺序
# 2019-10-02: webpack devtool 的值有哪些,有何区别。什么能在线上使用。
好好想想先 😌
参考链接
一句话
- 开发环境
source-map
- 生产环境
false
- 开发环境
# 2019-10-01: 什么是 TS override 和 overload
好好想想先 😌
参考链接
一句话
- override: 子类复写父类的方法
- overload: 指函数不同类型的参数返回不同类型的结果
class Foo { myMethod(a: string); myMethod(a: number); myMethod(a: number, b: string); myMethod(a: any, b?: string) { alert(a.toString()); } }