摘要: # 1xx Informational(信息)## 100 Continue(继续)## 101 Switching Protocols(交换协议)切换 WebSocket 时,响应状态码,eg: "request": { "bodySize": 0, "method": "GET", "url": "WebSocket URL", "httpVers... 阅读全文
posted @ 2019-12-15 22:00 zjffun 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 当发送 GET 请求时浏览器会检查该资源的缓存信息,并决定是否发送 HTTP 请求。如果需发送请求则根据响应决定是否使用原缓存,或不使用原缓存并设置新缓存。# 浏览器处理 HTTP 缓存流程(简化版)## 请求阶段- 该资源是否有缓存? - 有缓存: - 该资源 `Cache-Control`或`Expires` 是否过期? - 未过期:直... 阅读全文
posted @ 2019-12-15 22:00 zjffun 阅读(218) 评论(0) 推荐(0) 编辑
摘要: # 1. 创建证书进入要建立 HTTPS 服务的目录```bashopenssl genrsa -out key.pem 1024openssl req -new -key key.pem -out csr.pemopenssl x509 -req -in csr.pem -signkey key.pem -out cert.pem```# 2. 启动服务```bashhttp-server -S... 阅读全文
posted @ 2019-12-15 22:00 zjffun 阅读(2004) 评论(0) 推荐(0) 编辑
摘要: # DOM Level 0Events:绑定到 DOM 的属性上,找不到官方文档DOM0 是在 W3C 进行标准备化之前出现的,实际上是未形成标准的试验性质的初级阶段的 DOM。```jsvar tdiv = document.createElement('div');// 绑定事件tdiv.onclick = function(d){console.log('click tdiv!')}// 手... 阅读全文
posted @ 2019-12-15 21:59 zjffun 阅读(392) 评论(0) 推荐(0) 编辑
摘要: - Fetch 请求默认是不带 Cookie 的,需要设置 fetch(url, {credentials: 'include'})- 服务器返回 400,500 错误码时并不会 reject,只有网络错误这些导致请求不能完成时,fetch 才会被 reject。[传统 Ajax 已死,Fetch 永生 - 会影 - SegmentFault 思否](https://segmentfaul... 阅读全文
posted @ 2019-12-15 21:59 zjffun 阅读(1165) 评论(0) 推荐(0) 编辑
摘要: [tc39/proposal-hashbang: #! for JS](https://github.com/tc39/proposal-hashbang)某些奇怪的报错可能是因为系统不支持 Shebangs / Hashbang 导致的。貌似 Node.js 已经支持这个新特性了,使用[fork](https://nodejs.org/api/child_process.html#child_p... 阅读全文
posted @ 2019-12-15 21:59 zjffun 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 解决:window.open 后设置关闭当前页面 window.opener = null 阅读全文
posted @ 2019-12-15 21:59 zjffun 阅读(386) 评论(0) 推荐(0) 编辑
摘要: # 普通`` 没有 `defer` 或 `async`,浏览器会立即加载并执行指定的脚本,“立即” 指的是在渲染该 `script` 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。# `async``` 有 `async`,加载和渲染后续文档元素的过程将和 `script.js` 的加载与执行并行进行(异步)。# `defer``` 有 `defer`,加载后续文档元... 阅读全文
posted @ 2019-12-15 21:59 zjffun 阅读(114) 评论(0) 推荐(0) 编辑
摘要: iframe:# iframe 内容加载后不改变使用:`onload="this.height=this.contentWindow.document.documentElement.scrollHeight"`例如:```html Document 自适应高度 非自适应高度 ```# iframe 内容加载后改变定时改变 iframe 高度:```jssetInterval(()... 阅读全文
posted @ 2019-12-15 21:58 zjffun 阅读(915) 评论(0) 推荐(0) 编辑
摘要: # 回车和换行JSON 无法处理回车和换行,例如下面的语句会报错```jsJSON.parse({ a: "\r" });```- `\r`: `\x0D`回车 CR (Carriage Return)- `\n`: `\x0A`换行 LF (Line Feed)# JSON.stringify 出现:Converting circular structure to JSON```js//... 阅读全文
posted @ 2019-12-15 21:58 zjffun 阅读(221) 评论(0) 推荐(0) 编辑
摘要: # 背景最近需要改点 neo4j-browser 的代码做个 demo,分析初始化时运行命令的代码时花了很多时间,记录一下。# 目的找出 dispatch `SINGLE_COMMAND_QUEUED` action 的地方。PS: 要是会 [redux-observable](https://redux-observable.js.org/), [Redux](http://github.co... 阅读全文
posted @ 2019-12-15 21:58 zjffun 阅读(493) 评论(0) 推荐(0) 编辑
摘要: JS 使用 IEEE 754 的双精度数表示数字,1 位符号,10 位指数,53 位底数。所以 JS 数字精度近似为 15.95 位 10 进制(`10 ** 15.95`)。也就是说整部加小数部分超过 15 位再用 Number 类型就不合适了,可以使用 JS 的[BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Re... 阅读全文
posted @ 2019-12-15 21:58 zjffun 阅读(4599) 评论(0) 推荐(0) 编辑
摘要: Object 的 key 是排过序的,但这个 Object 的 key 的排序和数组下标不同是有限制的,我在 Node.js(Chrome V8 引擎)测试 Object 的 key 只有在小于`2^32 - 1`时才会排序。要保证 Object 的 key 的顺序的话可以先获取可枚举属性然后排序,参见:[Object.entries() - JavaScript | MDN](https://d... 阅读全文
posted @ 2019-12-15 21:58 zjffun 阅读(3490) 评论(0) 推荐(0) 编辑
摘要: 感觉原型真是 JS 中非常复杂的一环。看 MDN 的文档某些地方也不是写的很清楚,下面写一些我对于原型的理解,如有错误望大家指出。感觉`prototype`和`[[Prototype]]`挺容易混的,看 ES 的文档时也是在看到`prototype.constructor`时很蒙。根据我的经验`prototype`一般只有构造函数(函数)有,毕竟她可以创建对象(实例),其他对象,数组,字符串什么的... 阅读全文
posted @ 2019-12-15 21:57 zjffun 阅读(210) 评论(0) 推荐(0) 编辑
摘要: # 栈、堆和队列- 栈:函数调用形成栈- 堆:对象的内容分配在堆中- 队列:一个 JavaScript 运行时包含了一个待处理的消息队列。在事件循环期间依次处理队列中的消息# 事件循环> 之所以称之为事件循环,是因为它经常按照类似如下的方式来被实现:```jswhile (queue.waitForMessage()) { queue.processNextMessage();}``... 阅读全文
posted @ 2019-12-15 21:57 zjffun 阅读(403) 评论(0) 推荐(0) 编辑
摘要: # 一:为私有变量创建`get()`方法这种方式可以创建 “伪” 只读属性。这并不是一种好方法,因为使用_函数_获得只读的_属性_不太符合一般的逻辑。```js/** * Represent a used car. * * @constructor */function Car() { var SELF = this, odometer = 0; /** * Increment th... 阅读全文
posted @ 2019-12-15 21:57 zjffun 阅读(2075) 评论(0) 推荐(0) 编辑
摘要: 拷贝对象分为浅拷贝和深拷贝,深拷贝只会复制地址,深拷贝才会复制内容,那么 JS 如何进行这两种拷贝呢?# 浅拷贝## Object.assign() 方法[Object.assign() - JavaScript | MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Objec... 阅读全文
posted @ 2019-12-15 21:57 zjffun 阅读(696) 评论(0) 推荐(0) 编辑
摘要: # 安装依赖```bashnpm i simplebig```# Node.js 代码```jsconst fs = require("fs");const path = require("path");const S = require("simplebig");// 要转换的文件夹const dirPath = "./test";// 要转换的文件的后缀const extWhiteList =... 阅读全文
posted @ 2019-12-15 21:57 zjffun 阅读(917) 评论(0) 推荐(0) 编辑