和其他编程语言(如 C 和 Java)不同,JavaScript 不区分整数值和浮点数值, 所有数字在 JavaScript 中均用浮点数值表示,遵循IEEE754标准,在进行数字运算的时候要特别注意. 即:在js中的数字都是64位的浮点数.浮点数不是精确的值.涉及到小数的计算需要特别注意. IEEE 754 64位浮点数在js中的存储形式如下: 用数学形式(二进制的科学计数法)表示如下: 示例: 由上可知,可以存储的数据的小数点为52位,整个数据的有效数字长度为53位.即精度只有53个二进制位…
JS中数字和字符相加相减问题 <html lang="en"> <head> <meta charset="utf-8" /> <title></title> </head> <body> </body> </html> <script type="text/javascript"> var a = 100; var b = &…
js中字符串间的比较是按照位次优先,比较各字符的ASCII大小,包括数字字符串之间的比较. 1.console.log("1"<"3");//true 2.console.log('5'<'10');//false 3.console.log("123"<"123");//false 4.console.log("abc"<"aad");//false…
一.堆和栈的介绍 1.堆和队,是先进先出:栈,是先进后出,就跟水桶差不多: 2.存储速度:堆和队的存储速度较慢,栈的存储速度较快,会自动释放: 二.js中存储的类型 1.堆,一般用于复杂数据类型,存储速度较慢,例如js中的数组对象,object对象: 2.栈,主要存放一些基本类型的变量和对象的引用,栈内的数据是可以共享; 栈中new 出来的,不用共享,占用新的空间. 三.js 中垃圾的回收机制 js中的堆不需要程序代码得来显示释放,浏览器垃圾回收的基本原则:如果栈中不存在对堆中某个对象的引用,那…
其实同样的问题在java中也有存在,同样是浮点数的问题 问题这样的: 37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎么可能多出这么小数点出来. 我Google了一下,发现原来这是JavaScript浮点运算的一个bug. 比如:7*0.8 JavaScript算出来就是:5.6000000000000005 网上找到了一些解…
Number(11).toString() "11" var num = 111; undefined num.toString() "111" .toString() VM234432:1 Uncaught SyntaxError: Invalid or unexpected token 原因:JavaScript的解释器把数字后的"."偷走了(作为前面数字的小数点), 类似于下面的操作:…
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>数组的遍历方式</title> <script type="text/javascript"> var arr = [11,22,33,55]; //普通的循环遍历方式 function first(){ for(var i= 0;i<arr.length;…
数字转换为字符串 var num  = 123: 1.num.toString 2."" + num 3.String(num) 将数字转化为格式化后的字符串 num.toFixed(2)   小数点后显示两位 toExponential() 科学计数法 toPrecision() 精确位数…
var letter = String.fromCharCode(66); // B var num = "B".charCodeAt(); // 66…
在控制台输入0.1+0.2,会得出以下结果 即不等于0.3.下面我们说一下原因. 一.存储原理 1.在计算机中数字无论是定点数还是浮点数都是以多位二进制的方式进行存储的.2.在JS中数字采用的IEEE 754的双精度标准进行存储(存储一个数值所使用的二进制位数比较多,精度更准确). 二.示例 在定点数中,如果我们以8位二进制来存储数字.对于整数来说,十进制的35会被存储为: 00100011 其代表 2^5 + 2^1 + 2^0.对于纯小数来说,十进制的0.375会被存储为: 0.011 其代…