gpt4 book ai didi

javascript - 字符串匹配函数返回一个数组,但如果转换为数字,则返回匹配的数字

转载 作者:行者123 更新时间:2023-11-29 22:48:03 25 4
gpt4 key购买 nike

为什么

console.log(
"test3".match(/\d/)
);

返回一个元素数组,但将其转换为数字:

console.log(
+"test3".match(/\d/)
);

直接返回匹配的数字?

我以为它会抛出一个错误。

我注意到的另一件事是,在第一个表达式之前使用 typeof,它表示“对象”,但即使是 MDN 也说它是一个数组。

编辑:实际上我并没有把自己和 + 运算符或优先级混淆,我对数组到数字的转换感到困惑哈哈。谢谢!

最佳答案

这一行:

+"test3".match(/\d/)

你可能认为它意味着 (+"test3").match(/\d/) 但它不是。

它实际上转化为+("test3".match(/\d/))

所以执行的步骤就变成了:

--> +("test3".match(/\d/))
--> +(["3"])
--> +(["3"].toString())
--> +("3")
--> 3

因此,不会抛出任何错误。

您可以阅读更多关于 operator precedence here 的信息.

希望这能澄清您的困惑。

关于javascript - 字符串匹配函数返回一个数组,但如果转换为数字,则返回匹配的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57984471/

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