nmsn
nmsn
查询得知,toFixed 使用的是`银行家舍入法` > 所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法 > https://baike.baidu.com/item/%E9%93%B6%E8%A1%8C%E5%AE%B6%E8%88%8D%E5%85%A5/4781630 > 四舍六入五考虑, 五后非零就进一, 五后皆零看奇偶, 五前为偶应舍去, 五前为奇要进一。 这种计算方法是 IEEE754 标准的推荐舍入标准 所以在计算金额相关的数据时,需要更加注意相关规则 但是 Chrome 验证过后并不是完全按照这个规则处理(待补充)
### es6 class 和 es5 构造函数的区别 1. class 声明会进入暂时性死区,提前调用会报错 2. class 内部会启用严格模式 3. class 的所有方法不可枚举 4. class 的所有方法(包括静态方法和实例方法)都没有原型对象,所以也没有 `[[construct]]`,不能使用 new 来实例化 5. 必须使用 new 调用 class 6. class 内部无法重写类名
babel 编译 class 的结果 ```js // es6 class Person { constructor(name) { this.name = name } sayName() { return this.name; } } // es5 function _instanceof(left, right) { if (...
使用 Enum 违背了一个原则: 去掉 Typescript 类型,剩下的 Javascript 还是具有完整功能,Typescript 只是增加了静态类型 Enum 的使用,使得需要增加额外的代码来保证功能的完善(另外不推荐使用的 namespace 也打破了这个规则)
在 TypeScript 中,const enum 和 enum 都用于定义枚举类型,但它们之间有一些重要的区别。 enum 是一种可以为一组相关的数值赋予有意义的名字的方式。它会在运行时被编译成一个对象,该对象包含枚举成员的名称和对应的值。例如: ```ts enum Color { Red, Green, Blue, } ``` 在运行时,Color 会被编译成以下对象: ```js { "0": "Red", "1": "Green", "2": "Blue", "Red": 0,...
enum 不支持 Tree-Shaking前段时间有同事说没有用到的 enum 定义被打到了包里,我当时觉得这不太可能,编译成 JS 就是一个普通的变量而已,怎么可能不被 Tree-Shaking ?但是经过实验,我发现这玩意儿确实无法 Tree-Shaking 。查看编译结果,我发现 enum 声明并不会简单的转义成一个变量声明。我们来看一个例子: ```ts enum T { A, B, C } ``` 上面这段代码会被转译成: ```ts "use strict"; var T; (function (T)...
> 原文:https://mp.weixin.qq.com/s/N5xVhQzBDy-Dj2ccFVru6Q ## 特点 ### babel - 编译针对单文件,无法做类型检查(直接去掉类型信息) - 语法支持不完全 - 不支持 const enum,会当作 enum 处理,因为 babel 只是针对单文件处理 - namespace 部分支持。不支持 namspace 的跨文件合并 - babel 不会生成声明文件(babel 只负责把 TS 语法转换成 JS(其实就是去掉...
https://github.com/mortal-cultivation-biography/reading-notes/issues/7
https://juejin.cn/post/7246686667750785083?searchId=20231011162111A29BF433DB99C1966444
That's exactly what I need