CPPAlien / JS-QA

前端知识问答
0 stars 0 forks source link

ES6 新特性 #20

Open CPPAlien opened 4 years ago

CPPAlien commented 4 years ago

Math.trunc

先进行 Number 转化,然后再去除小数

对比 parseInt

console.log(parseInt('13.14g'));//13
console.log(Math.trunc('13.14g'));//NaN
console.log(parseInt(6.022e23)); // 6
console.log(Math.trunc(6.022e23)); // 6.022e+23
console.log(parseInt(0.00000060));//6  (如果出现连续的超过6个及其以上连续的6个0会自动改成科学计数法)
console.log(Math.trunc(0.00000060));//0

和 floor 比较

Math.floor(1.1)  // 1
Math.floor(-1.1) // -2
Math.ceil(-1.1)  // -1
Math.trunc(-1.1) // -1
CPPAlien commented 4 years ago

Map 和 Set

1,相对于 Java 中 HashMap,JS 中 Map 可以维持插入顺序; 2,WeakMap 和 WeakSet 中的键 只能为 Object 或 继承自 Object 的类型,而 Map 和 Set 可以任意。 3,WeakMap 和 WeakSet 表示弱弱的拿着,不会计入对象的正式引用;key 是如此,值还是拿着; 4,WeakSet 和 WeakMap 一般用在给 key 标记场景,比如 对某个 dom 进行标记,这样不会造成持有了这个 dom 而导致内存泄漏,而且即使这个 dom 在外部被回收了也不影响