<input type='button' onclick="ddd(2010106115268001565)">
<script>
function ddd(id){
alert(id);
}
</script>
这是一个传参数的方法,问题是:为什么ddd函数的参数,在不带单引号的时候,也就是如上代码的时候,alert出来的是2010106115268001500而不是2010106115268001565,而在个数字两边加上单引号的时候,alert出来的数据就是正常的呢?
请大神指点,在线等
js的number类型有个最大值(安全值)。即2的53次方,为9007199254740992。如果超过这个值,那么js会出现不精确的问题。这个值为16位, 切换成字符串传参即可
带单引号传递的是字符串,不带单引号传递的就是数值,而js的number类型有最大值,超过的话就会损失精度