gpt4 book ai didi

javascript - 函数比数组大?

转载 作者:IT王子 更新时间:2023-10-29 03:05:46 25 4
gpt4 key购买 nike

我的一个 friend 在一些 Javascript 代码中发现了一些有趣的行为,我决定进一步调查。

比较

(function (x) {return x*x;}) > [1,2,3]

在大多数主流浏览器(Firefox、Chrome、Opera 和 Safari)中返回 true,在 IE9 中返回 false。对我来说,除了 undefined 之外,没有这种比较的逻辑结果,因为没有办法说函数大于数组。

在 ECMA 脚本标准中阅读此内容,它说 > 的实际参数在对象上使用时是对参数调用 ToNumber 内部操作的结果。一些实验和进一步阅读告诉我,这与应用类型转换(例如 (Number) arg)不同。阅读规范,我很难弄清楚这里发生了什么。

谁能告诉我这里到底发生了什么?

最佳答案

在 IE<9 中,.toStringing (function (x) {return x*x;}) 给出

"(function (x) {return x*x;})" 

在 chrome 中它给出:

"function (x) {return x*x;}"

如果比较:

"function (x) {return x*x;}" > "1,2,3" // true
"(function (x) {return x*x;})" > "1,2,3" // false

这实际上与比较相同:

"f" > "1"
"(" > "1"

这与比较相同:

102 > 49
40 > 49

这就是我们如何从函数和数组比较得到简单的数字比较:)

关于javascript - 函数比数组大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9381321/

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