gpt4 book ai didi

javascript - 奇怪的 javascript 行为 FireFox 5.0

转载 作者:行者123 更新时间:2023-11-30 07:06:09 25 4
gpt4 key购买 nike

我已经让 javascript 运行了很长一段时间,而且我在 IE 或早期版本的 firefox 中从未遇到过任何问题。然而在 Firefox 5.0 中,如果失败。

注意!已删除公式以简化示例,因为我已确认该公式有效并产生预期结果。

<script type="text/javascript">
function NaN(Num) {
return (isNaN(Num) || Num == Infinity || Num == -Infinity ? "n/a" : Num);
}

function CalculateFormula() {
result = NaN(*formula*);
}

</script>

当要调用 NaN 函数时,javascript 就退出。它在 IE 中工作起来就像一个魅力,但为了支持 FireFox 5.0,我从结果中删除了 NaN 函数。

function CalculateFormula() {
result = *formula*;
}

我也试过这个,但它也会在调用 NaN 函数时从脚本中退出。但这证实了我的公式按预期返回了一个数字。

function CalculateFormula() {
result = *formula*;
result = NaN(result);
}

任何人都可以阐明这个问题吗?

最佳答案

它在 Firefox 上失败,因为 NaN property全局对象的定义在 ECMAScript 5 上为不可写不可配置不可枚举,以及Firefox 4 (and up)正在实现此版本的规范。

这意味着该属性的值无法通过赋值更改-不可写-,该属性无法重新配置(无法更改上述三个属性中的任何一个)或被删除-non-configurable-,并且它不会出现在 for-in 循环或 Object.keys 方法中 -non-enumerable -

您可以重命名您的函数,或者更好的是,重组您的代码 以公开较少的全局标识符,从而避免该问题。

作为 NaNInfinityundefined 的全局对象的值属性在 ECMAScript 3 上是可写的,这导致了很多问题,你不能依赖它的值,ES5 解决了这个问题。

关于javascript - 奇怪的 javascript 行为 FireFox 5.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6992248/

25 4 0
文章推荐: javascript - 变量中未终止的字符串文字
文章推荐: java - 如何通过setter方法给Set设置值