delete可以删除数组元素,但是不会影响length

字符串强制类型转换

  1. var a = []
  2. a['13'] = 42; // 强转换 string => number
  3. a.length // 14

简单字符串反转

  1. var a = 'foo'
  2. var c = a
  3. .split('')
  4. .reverse()
  5. .join('')

toPrecision(…) 指定有效数位的显示位数

  1. var a = 42.59
  2. a.toPrecision(1) // 4e+1
  3. a.toPrecision(2) // 43
  4. a.toPrecision(3) // 42.6
  5. a.toPrecision(4) // 42.59
  6. a.toPrecision(6) // 42.5900 // 指定的小数位数多余实际位数就用0补全

‘ . ‘ => 点运算符

先识别为数字字面量的一部分,再识别为对象属性的访问运算符

  1. 42.toFixed(3) // SyntaxError
  2. // ok的情况
  3. (42).toFixed(3)
  4. 0.42.toFixed(3)
  5. 42..toFixed(3)

es6判断浮点数相等的方法

设置一个误差范围值,也称”机器精度”,再js中通常为 2^ -52(2.220446049250313e - 16)

  1. 0.1 + 0.2 === 0.3 // true
  2. if(Number.EPSILON) {
  3. Number.EPSILON = Math.pow(2, -52)
  4. }
  5. function numbersCloseEnoughToEqual(a, b) {
  6. return Math.abs(a - b) < Number.EPSILON
  7. }
  8. numbersCloseEnoughToEqual(0.1+0.2, 0.3) // true
  9. numbersCloseEnoughToEqual(0.0000001, 0.0000003) // false

判断一个值是否是整数 Number.isInteger(…)

  1. Number.isInteger(42) // true
  2. Number.isInteger(.42) // false

null和undefined的区别

  • null指空值

  • undefined指没有值

  • null指曾赋过值,但是目前没有值

  • undefined指从未赋过值

  • null是关键字,不是标识符

  • undefined是标识符,可以当作变量赋值

  1. var null = 1 // SyntaxError
  2. var undefined = 1

viod __ 表达式

并不改变表达式的结果,只是让表达式不返回值。
可以用 void 0来获得undefined