JavaScript 中带前导零的数字发生变化

2024-05-18

我使用 print 语句从 php 调用 javascript 函数来打印 html 代码,并且传入一个整数。但是,在 php 中传递的值与 javascript 函数接收到的数字不匹配,我不知道为什么。

这是调用 javascript 函数的 php:

$upc = $items[$i]->GetUPC();
print "upc: " . $upc . "<br/>";

$delete = "<a href='#' onclick='removeFromCart(". $upc .")' ><img src='".$redx."' height='17' width='17' /></a>";

print语句打印出值:0011110416605

在页面上,使用查看源代码,以下是此标记:

<a href='#' onclick='removeFromCart(0011110416605)' >

这是正在调用的 javascript 函数:

function removeFromCart(itemID){
    var option = document.getElementById("select_cart");
    var selected = option.options[option.selectedIndex].value;

    alert(itemID);

    loadCart(itemID,selected,"","remove");
}

警报框打印出号码:1226972549

我可以理解它是否删除了前导 0,但这个数字完全不同。有谁知道为什么会这样?


JavaScript 认为它是一个八进制值(因为前导零并且缺少大于的数字)7)。八进制的十进制值0011110416605 is 1226972549。例子:

> var value = 010; //10 in octal
> console.log(value);
> 8  //is 8 in decimal

使用字符串代替:

removeFromCart("0011110416605")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 中带前导零的数字发生变化 的相关文章