gpt4 book ai didi

javascript - 将空字符串添加到 parseInt 的第一个参数

转载 作者:行者123 更新时间:2023-11-29 16:08:59 25 4
gpt4 key购买 nike

我只是想了解 JS 柯里化(Currying)的工作原理。在寻找它时,我发现了一个相关的例子:

var add = function (orig) {
var inner = function (val) {
return add(parseInt(val+'', 10) == val ? inner.captured+val : inner.captured);
};
inner.captured = orig;
inner.valueOf = function () {return inner.captured;};

return inner;
};

将空字符串添加到 parseInt 中的第一个参数有什么意义? 方法?我认为它也可能与 valueOf 有关

最佳答案

val+'' 将表达式转换为字符串。

快速测试以显示发生了什么:

typeof(1)
"number" // value is 1 (number)
typeof(1+'')
"string" // now value is "1" (a string)

what is the purpose of making it a string?

目的可能是避免 native 代码调用抽象ToString方法将parseInt的第一个参数转换为字符串。

我们可以在 MDN 中读到 parseInt 的第一个参数是具有以下描述的字符串:

The value to parse. If string is not a string, then it is converted to a string (using the ToString abstract operation). Leading whitespace in the string is ignored.

关于javascript - 将空字符串添加到 parseInt 的第一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33895388/

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