gpt4 book ai didi

javascript - Html 十六进制函数参数意外地被转换为十进制。

转载 作者:行者123 更新时间:2023-12-03 04:26:27 24 4
gpt4 key购买 nike

我从一个 html onclick 监听器调用此函数,其参数是表示地址的十六进制数字,但输出是以十进制形式表示的相同数字。我尝试转换回来,但它四舍五入了十六进制数。为什么函数调用首先要转换十六进制数?

flexcard += '<button class="mod marg" onclick="App.fundProject('+thisProjectAddress+')">Fund project</button>';

最佳答案

如果 thisProjectAddress 在代码中定义时不带引号,则它会被解释为十六进制数字而不是字符串,因此通常会表示为其十进制对应项。例如:

console.log(0x100) // => 256
console.log("0x100") // => 0x100

此外,即使它被存储为字符串,您也会将其作为 App.fundProject 的参数写入 flexcard 中(不带引号)。这意味着这个 flexcard 可能看起来像这样:

<button class="mod marg" onclick="App.fundProject(0x100)">Fund project</button>

由于与第一个示例一样,十六进制数字在没有字符串的情况下传递,因此它被解释为数字,并且该函数将适本地处理它。无论 App.fundProject 涉及其参数的输出是什么,都会将其视为与传递了 256 而不是 0x100 一样。如果您希望将其保留为十六进制表示形式,请将其作为字符串而不是数字传递:

flexcard += '<button class="mod marg" onclick="App.fundProject(\''+thisProjectAddress+'\')">Fund project</button>';

这将产生以下输出:

<button class="mod marg" onclick="App.fundProject('0x100')">Fund project</button>

关于javascript - Html 十六进制函数参数意外地被转换为十进制。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43691151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com