摘要:
TypeScript 是 JavaScript 的超集,正因为它是建立在 JavaScript 上的一门语言,TypeScript 把其他语言中的一些精妙的语法带入到了 JavaScript 之中,从而把 JS 带入到了一个新的高度,在 TS 里面可以使用各种 JS 之外的扩展语法,同时 TS 对面 阅读全文
摘要:
JavaScript 引用指向的是值,如果一个值有 10 个引用,这些引用指向的都是同一个值,它们相互之间没有引用/指向关系。JavaScrtip 对值和引用对赋值/传递在语法上没有区别,完全根据值的类型决定。 var a = 2; var b = a; // b 是 a 的一个副本 b++; a; 阅读全文
摘要:
NaN 和 -0 在相等比较时的表现有些特别。ES6 中新加入了一个工具方法 Object.is(..) 来判断两个值是否绝对相等,可以用来处理特殊情况 var a = 2/'foo'; var b = -3/0; Object.is(a, NaN); // true Object.is(b, -0 阅读全文
摘要:
JavaScript 有一个常规的 0 和一个 -0 var a = 0/-3; // -0 var b = 0*-3; // -0 对负零进行字符串转化会返回 0; (-0).toString(); // 0 -0 + ''; // 0 String(-0); // 0 JSON.stringif 阅读全文
摘要:
熟悉传统语言(C)的开发人员可能都遇到过编译错误(compiler error)或者运行时错误(runtime exception),例如 “除以0”。然后在 JavaScript 中上例的结果为 Infinity var a = 1/0; // Infinity var a = -1/0; // 阅读全文
摘要:
如果数学运算的操作数不是数字类型或者无法解析为常规的十进制或十六进制数字,就无法返回一个有效的数字,这种情况下返回值为 NaN。NaN 意指 “不是一个数字”,这个名字容易引起误会,“无效数值” “失败数值” 或者 “坏数值” 可能更准确些。 var a = 2 / 'foo'; // NaN ty 阅读全文
摘要:
undefined 类型只有一个值,即 undefined。 null 类型也只有一个值,即 null。它们既是类型也是值。null 指空值,undefined 指没有值或者: undefined 指从未赋值 null 指曾赋过值,但是目前没有值 null 是关键字,不是标识符,不能将其当作变量来使 阅读全文
摘要:
数字的呈现方式决定了 “整数” 的安全值范围远远小于 Number.MAX_VALUE(1.798e+308)。 能够被安全呈现的最大整数是: 2^53 - 1,即 9007199254740991,在 ES6 中被定义为 Number.MAX_SAFE_INTEGER。 最小整数 -9007199 阅读全文
摘要:
二进制浮点数最大的问题是会出现如下的情况: 0.1+0.3 0.3; // false 从数学角度来说,上面的条件判断应该为 true,可结果为什么是 false 呢? 简单来说,二进制浮点数中的 0.1 和 0.2 并不是十分精确,它们想加的结果并非刚好等于 0.3,而是一个比较接近的数字,0.3 阅读全文
摘要:
JS 中的数字常量一般用十进制表示 var a = 42; var b = 42.3 数字前面的 0 可以省略 var a = 0.42 var b = .42 小数点后小数部分最后面的 0 也可以省略 var a = 42.0; var b = 42.; 特别大和特别小的数字默认用指数格式显示,与 阅读全文