JavaScript数字 JavaScript字符串方法 JavaScript数字方法 JavaScript的只有一种类型的数字. 数字可以有也可以没有小数. JavaScript中的数字 JavaScript 数字可以有也可以没有小数: var x = 34.00; // A number with decimals var y = 34; // A number without decimals 特别大的或者特别小的数字可以用科学计数法: var x = 123e5; // 12300000 var y = 123e-5; // 0.00123 JavaScript 数字总是64位浮点 不像许多其他的编程语言,JavaScript没有定义不同类型的数字, 像整型、短整型、长整型、浮点型等. JavaScript 数字总是存储为双精度浮点数, 按照国际IEEE 754标准. 这种格式将数字存储在64位,其中数字(分数)存储在位0到51,指数在位52到62,和符号在位63: Value (aka Fraction/Mantissa) Exponent Sign 52 bits (0 - 51) 11 bits (52 - 62) 1 bit (63) 精确度 整数被认为是精确到15位数. var x = 999999999999999; // x will be 999999999999999 var y = 9999999999999999; // y will be 10000000000000000 让我试试 小数的最大数量 17, 但浮点运算并不总是100%准确: var x = 0.2 + 0.1; // x will be 0.30000000000000004 让我试试 为了解决上述问题,可以利用乘法和除法: var x = (0.2 * 10 + 0.1 * 10) / 10; // x will be 0.3 让我试试 十六进制 JavaScript 解读数字常量作为16进制,如果他们以0x开头. var x = 0xFF; // x will be 255 让我试试 不要用前导零写数字 (像 07). 一些JavaScript版本解释数字如果他们用前导零为八进制. 默认情况下,JavaScript显示数字为10进制数. 但是你能使用toString()方法 作为16进制、8进制和2进制输出数字. var myNumber = 128; myNumber.toString(16); // returns 80 myNumber.toString(8); // returns 200 myNumber.toString(2); // returns 10000000 让我试试 Infinity 正无穷大 (或者 负无穷大) 如果你计算一个数超出了最大数的范围,将返回的数字. var myNumber = 2; while (myNumber != Infinity) { // Execute until Infinity myNumber = myNumber * myNumber; } 让我试试 除以0(零)也产生无穷大的数: var x = 2 / 0; // x will be Infinity var y = -2 / 0; // y will be -Infinity 让我试试 Infinity 是一个数字: Infinity的typeof返回number. typeof Infinity; // returns "number" 让我试试 NaN - 不是一个数字 NaN是一个javascript的保留字,表示一个数不是一个合法的数. 试图用非数值字符串做算术会导致 NaN (Not a Number): var x = 100 / "Apple"; // x will be NaN (Not a Number) 让我试试 但是,如果字符串包含一个数值,结果将是一个数字: var x = 100 / "10"; // x will be 10 让我试试 你可以使用全局JavaScript函数isNaN()来判断一个值是否是一个数字 var x = 100 / "Apple"; isNaN(x); // returns true because x is Not a Number 让我试试 注意NaN. 如果一个操作数是NaN,结果也是NaN: var x = NaN; var y = 5; var z = x + y; // z will be NaN 让我试试 或结果可能会是一个字符串连接: var x = NaN; var y = "5"; var z = x + y; // z will be NaN5 让我试试 NaN 是一个数字, typeof NaN 返回 number: typeof NaN; // returns "number" 让我试试 数字可以是对象 通常的JavaScript数字是原始值,由字面量创建: var x = 123 但数字也可以使用关键字new创建为对象: var y = new Number(123) var x = 123; var y = new Number(123); // typeof x 返回 number // typeof y 返回 object 让我试试 不要创建数字对象。它减慢执行速度。new关键字使代码复杂化。这会产生一些意想不到的结果: 当使用 == 操作符时, 等数相等: var x = 500; var y = new Number(500); // (x == y) is true because x and y have equal values 让我试试 当使用===运算符时,相等数不相等,因为操作符在类型和值上都期望相等. var x = 500; var y = new Number(500); // (x === y) is false because x and y have different types 让我试试 甚至更糟。对象不能比较: var x = new Number(500); var y = new Number(500); // (x == y) is false because objects cannot be compared 让我试试 比较两个JavaScript对象将始终返回false。 JavaScript字符串方法 JavaScript数字方法