2020-06-13二进制浮点数的存储:IEEE-754数字的二进制表示●数字的二进制表示数字13.125示例如下图,规则如下:(1)整数部分不断除以2记录余数直到商为0,将余数逆序排列作为结果;(2)小数部分不断乘以2记录去掉整数部分直到乘积小数部分结果为0,将整数部分正序排列作为结果; IEEE-754的64位浮点数●JavaScript默认采用IEEE-754的64位浮点格式存储数字;●IEEE-754的64位浮点数存储方式...阅读全文…
2020-06-12从0.1+0.2不等于0.3想到的二进制无法精确存储0.1♂十进制下一个简单的小数0.1,在二进制下却变成无限循环小数0.0 0011 0011 0011…进而无法精确的存储,是不是说明二进制有缺陷?♂答案是否定的:(1)小数分为有限小数、无限循环小数、无限不循环小数,其中有限小数和无限循环小数都可以转换成有理数范围内的分数形式,十进制下的0.1也就是分数1/10;(2)无论用多少进制表示小数,小数的值都是通过∑m...阅读全文…
2020-05-07webpack项目优雅使用ServiceWorker简介●此处将“优雅”的含义定义为两个方面:(1)应用webpack生态简化ServiceWorker的配置;(2)ServiceWorker的开关控制与相关库的按需加载;●第一方面具体是offline-plugin插件的应用;●第二方面是动态获取前端配置与webpack的Code Spliting机制的应用; offline-plugin插件的应用○webpack生态提供了offline-p...阅读全文…
2020-02-17微服务基本理解简介◇微服务是一种架构风格,由Martin Fowler与James Lewis于2014年提出;◇微服务方式是使用一套小服务来开发单个应用,每个服务运行在自己的进程中(每个服务可看作一个小的应用),并使用轻量级机制通信,通常是HTTP API,这些服务能够通过独立的自动化部署,可以分别使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理;◇微服务理念:有效拆分服务,提供...阅读全文…
2020-02-04配置公司GitLab和个人GitHub使用不同的Name和Email◇Git v2.13及之后的版本支持条件配置include(conditional configuration includes),首先进行必要的git版本升级;◇配置全局默认的name和email为公司的Name和Email,使用如下命令: 12git config set --global user.name yuancongzhougit config set --global use...阅读全文…
2019-11-26webpack项目自动代码检查与格式化的实现当前解决方案● 使用 editorconfig 控制书写代码期间的基本风格统一。● 使用 eslint 做代码语法检查,实现代码质量控制。● 使用 prettier 做代码格式化,实现统一风格。● git commit 之前执行自动修复,无法自动修复的地方手动修改。 ps: 由于 eslint 也包含了代码格式化功能,所以 prettier 仅做非 js 类代码(js/ts...阅读全文…
2019-11-05浏览器组成与JS运行时环境从浏览器组成到 JS 运行时环境◆ 浏览器组成相关内容整理到了这篇浏览器中的进程与线程。◆ 浏览器内核实例中的以下几项内容被称为“JS 运行时环境(JS Runtime Environment)”:(1)JS 引擎。(2)事件循环(Event Loop)。(3)任务队列(Task Queue)。(4)Web/DOM API,包括如 setTimeout 等定时器函数、Ajax 等网...阅读全文…
2019-08-14React Native工程增加Expo支持行动前的考虑◆原有的React Native工程是在Windows下安装完Android开发环境后使用命令”react-native init”生成的,看到存储Android SDK所需的30G+的硬盘和Android模拟器运行所需的8G+内存预算,想在自己的便携机上搞一套相同环境负担实在太重; ◆看到Expo时被其简练的开发流程所吸引,而环境轻量太多了,也同样支持代码修改保存后自动刷新内容...阅读全文…
2019-08-02Taro使用与开发钉钉小程序选择Taro前的考虑■钉钉于2019年6月中旬升级原“E应用”为“小程序”,同时升级了小程序开发者工具,可以兼容阿里巴巴旗下手淘、支付宝等不同产品的运行环境钉钉小程序; ■根据官方说明,E应用和支付宝小程序使用相同的小程序通用框架,支持通用组件和API,然后分别有自己扩展的组件和API,如下图; ■Taro支持开发支付宝小程序,进而可以支持钉钉小程序的开发; Taro通用使用...阅读全文…
2019-06-07Apollo前端本地开发环境搭建分析○Apollo项目中前端代码位于“Apollo\apollo-portal\src\main\resources\static”目录下。 ○前端使用的框架和库是jQuery+bootstrap+早期AngularJS,没有webpack配置和前端开发服务器。然后其中的API请求使用的都是相对路径,没有统一配置API请求前缀的地方。另外存在非ajax方式的API请求,也存在服务器API返回...阅读全文…