delete可以删除数组元素,但是不会影响length
字符串强制类型转换
var a = []a['13'] = 42; // 强转换 string => numbera.length // 14
简单字符串反转
var a = 'foo'var c = a.split('').reverse().join('')
toPrecision(…) 指定有效数位的显示位数
var a = 42.59a.toPrecision(1) // 4e+1a.toPrecision(2) // 43a.toPrecision(3) // 42.6a.toPrecision(4) // 42.59a.toPrecision(6) // 42.5900 // 指定的小数位数多余实际位数就用0补全
‘ . ‘ => 点运算符
先识别为数字字面量的一部分,再识别为对象属性的访问运算符
42.toFixed(3) // SyntaxError// ok的情况(42).toFixed(3)0.42.toFixed(3)42..toFixed(3)
es6判断浮点数相等的方法
设置一个误差范围值,也称”机器精度”,再js中通常为 2^ -52(2.220446049250313e - 16)
0.1 + 0.2 === 0.3 // trueif(Number.EPSILON) {Number.EPSILON = Math.pow(2, -52)}function numbersCloseEnoughToEqual(a, b) {return Math.abs(a - b) < Number.EPSILON}numbersCloseEnoughToEqual(0.1+0.2, 0.3) // truenumbersCloseEnoughToEqual(0.0000001, 0.0000003) // false
判断一个值是否是整数 Number.isInteger(…)
Number.isInteger(42) // trueNumber.isInteger(.42) // false
null和undefined的区别
null指空值
undefined指没有值
null指曾赋过值,但是目前没有值
undefined指从未赋过值
null是关键字,不是标识符
undefined是标识符,可以当作变量赋值
var null = 1 // SyntaxErrorvar undefined = 1
viod __ 表达式
并不改变表达式的结果,只是让表达式不返回值。
可以用 void 0来获得undefined
