[翻译]JavaScript秘密花园 - Type Casting,undefined,eval,setTimeout,Auto Semicolon Insertion - 全部完成PDF打包下载
JavaScript Garden - 原文 JavaScript Garden - 中文翻译 PDF打包下载 类型转换 JavaScript 是 弱类型 语言,所以会在 任何 可能的情况下应用 强制类型转换 。 // 下面的比较结果是:truenew Number(10) == 10; // Number.toString() 返回的字符串被再次转换为数字10 == '10'; // 字符串被转换为数字10 == '+10 '; // 同上10 == '010'; // 同上 isNaN(null) == false; // null 被转换为数字 0 // 0 当然不是一个 NaN(译者注:否定之否定)// 下面的比较结果是:false10 == 010;10 == '-10'; ES5 提示: 以 0 开头的数字字面值会被作为八进制数字解析。而在 ECMAScript 5 严格模式下,这个特性被 移除 了。 为了避免上面复杂的强制类型转换, 强烈 推荐使用 严格的等于操作符 。虽然这可以避免大部分的问题,但 JavaScript 的弱类型系统仍然会导致一些其它问题。 内置类型的构造函数(Constructors of built-in types) 内置类型(比如 Number 和 String )的构造函数在被调用时,使用或者不使用 new 的结果完全不同。 new