Skip to content

1.知其然,知其所以然:TypeScript 中的协变与逆变

协变、逆变以及子类型是具备类型系统的语言中绕不开的话题,本篇文章带你了解协变与逆变在前端同学们最熟悉的语言—— TypeScript 中的表现。

原文地址:https://zhuanlan.zhihu.com/p/454202284

2.【译】Node 模块之战:为什么 CommonJS 和 ES Module 不能共存

原文地址:https://juejin.cn/post/6865557155102064648#comment
英文原文地址:Node Modules at War: Why CommonJS and ES Modules Can’t Get Along | by Dan Fabulich | Code Red (redfin.engineering)

3.「译」ES 2021 新特性: Top-level await

「ECMAScript」提案 Top-level await 由 Myles Borins 提出,它可以让你在模块的最高层中使用 await 操作符。在这之前,你只能通过在 async 函数或 async generators 中使用 await 操作符。

原文地址:https://segmentfault.com/a/1190000025184719

4.TOLOCALESTRING 也太好用了吧!(超方便转千分位,中文数字等)

应用

1.把阿拉伯数字转成中文数字

js
var num = 1
num.toLocaleString('zh-u-nu-hanidec') // "一"
12

2.转千分位

js
var num = 12345678.123
num.toLocaleString() // "12,345,678.123"
12

如果不想有分隔符,可以指定 useGrouping 为 false

3.转百分比

js
var num = 1345.2345
num.toLocaleString('zh', { style: 'percent' }) // "134,523%"
num.toLocaleString('zh', { style: 'percent', useGrouping: false }) // "134523%"
num.toLocaleString('zh', { style: 'percent', useGrouping: false }) // "134523%"
1234

4.转货币符号

js
var num = 1234.2345
num.toLocaleString('zh', { style: 'currency', currency: 'CNY' }) // "¥1,234.23"
num.toLocaleString('ja', { style: 'currency', currency: 'JPY' }) // "¥1,234"
num.toLocaleString('zh', {
  style: 'currency',
  currency: 'CNY',
  useGrouping: false,
  minimumFractionDigits: 3,
}) // "¥1234.235"

var arr = [1, 22, 3333]
arr.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }) // ¥1,¥22,¥3,333
12345678

注意:3,4 的设置,结果默认都只保留了两位小数,可通过minimumFractionDigits这个参数进行设置

5.指定整数最少位数、小数最少与最多位数,有效数字的位数,不够用 0 补全 (采用四舍五入法)

js
let num = 1234.456
num.toLocaleString('zh', { minimumIntegerDigits: 5 }) //01,234.456
num.toLocaleString('zh', { minimumFractionDigits: 4, useGrouping: false }) //1234.4560
num.toLocaleString('zh', { maximumFractionDigits: 2, useGrouping: false }) //1234.46
num.toLocaleString('zh', { minimumSignificantDigits: 8, useGrouping: false }) //1234.4560
num.toLocaleString('zh', { maximumSignificantDigits: 4, useGrouping: false }) //1234
123456

6.转换时间显示

javascript
var date = new Date()
date.toLocaleString() // "2020/9/28 下午5:14:53"
date.toLocaleString('zh', { hour12: false }) // "2020/9/28 17:14:53"

原文地址:https://www.freesion.com/article/22871353581/

5.Introduction · 函数式编程指北 (gitbooks.io)

关于本书

这本书的主题是函数范式(functional paradigm),我们将使用 JavaScript 这个世界上最流行的函数式编程语言来讲述这一主题。有人可能会觉得选择 JavaScript 并不明智,因为当前的主流观点认为它是一门命令式(imperative)的语言,并不适合用来讲函数式。但我认为,这是学习函数式编程的最好方式,因为:

你很有可能在日常工作中使用它

你不必从头学起就能开始编写程序

这门语言完全有能力书写高级的函数式代码

原文地址:https://llh911001.gitbooks.io/mostly-adequate-guide-chinese/content/

MIT Licensed