11 2020 档案
摘要:语句的结果值 var a = 3 * 6; var b = a; b; 以赋值表达式 b = a 为例,其结果值是赋给 b 的值(18),但规范定义 var 的结果值是 undefined。如果在控制台中输入var a = 42会得到结果值 undefined,而非 42 如果你用开发控制台调试过代
阅读全文
摘要:var a = [ 42 ]; var b = [ "43" ]; a < b; // true b < a; // false 比较双方首先调用 ToPrimitive,如果结果出现非字符串,就根据 ToNumber 规则将双方强 制类型转换为数字来进行比较 var a = [ "42" ]; v
阅读全文
摘要:说到 == 和 的区别,常见的误区是“== 检查值是否相等, 检查值和类型是否相等”。听起来蛮有道理,然而还不够准确。很多 JavaScript 的书籍和博客也是这样来解释的,但是很遗憾他们都错了。 正确的解释是:“== 允许在相等比较中进行强制类型转换,而 不允许。” 根据第一种解释(不准确的版本
阅读全文
摘要:&& 和 || 运算符的返回值并不一定是布尔类型,而是两个操作数其中一个的值。 var a = 42; var b = "abc"; var c = null; a || b; // 42 c || b; // "abc" a && b; // "abc" c && b; // null || 和
阅读全文
摘要:一元运算符 + 的另一个常见用途是将日期对象强制类型转换为数字 var d = new Date( "Mon, 18 Aug 2014 08:53:06 CDT" ); +d; // 1408369986000 我们常用下面的方法来获得当前的时间戳 +new Date(); // 160583729
阅读全文
摘要:字符串和数字之间的转换是通过 String(..) 和 Number(..) 这两个内建函数来实现的 String(42); // "42" Number('3.14'); // 3.14 String(..) 遵循前面讲过的 ToString 规则,将值转换为字符串基本类型。Number(..)
阅读全文
摘要:假值 以下是假值: Boolean(undefined); // false Boolean(null); // false Boolean(0); // false Boolean(NaN); // false Boolean(""); // false 假值的布尔强制类型转换结果为 false。
阅读全文
摘要:undefined.toString(); // TypeError: Cannot read property 'toString' of undefined null.toString(); // TypeError: Cannot read property 'toString' of nul
阅读全文
摘要:将值从一种类型转换为另一种类型通常称为类型转换,这是显式的情况;隐式的情况称为强制类型转换。 JavaScript 中的强制类型转换总是返回标量基本类型值,如字 符串、数字和布尔值 们能够从代码中看出哪些地方是显式强制类型转换,而隐式强制类型转换则不那么明显,通常是某些操作产生的副作用。 例如: v
阅读全文