1. 数字中的小数点
42.toFixed(3); // SyntaxError
42..toFixed(3); // “42.000”
42.toFixed(3)是无效语法,因为点号【.】被视为数字常量【42.】的一部分,所以没有【.】属性访问运算符来调用toFixed方法;
2. + 可以字符强转数字
var c = '3.14';
var d = 5+ +c; // 8.14
3. + 加法交换律并不完全符合预期
var a = [] + {}; // "[object Object]"
var b = {} + []; // 0
4. 并不是所有的数据都等于他本身
var num = NaN;
num === num; // false
5. 关于 == 的隐式强制转换
var isTure = '42';
if(isTrue) {
console.log('isTrue'); // 打印:'isTrue'
}
console.log("isTrue:", isTrue == true); // 打印:isTrue: false
’42‘ == true 的 过程是:’42‘ == 1 => 42 == 1 ,所以结果是:false;而判断里面的是进行ToBoolean()类型转换。