在JavaScript中按NaN打断符

Break on NaN in JavaScript(在JavaScript中按NaN打断符)
本文介绍了在JavaScript中按NaN打断符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有任何现代浏览器会在NAN传播上引发异常(即对NAN进行乘法或加法),或者可以配置为执行此操作?

静默NaN传播是一个可怕且隐蔽的错误来源,我希望能够及早发现它们,即使是在性能下降的情况下也是如此。


这里有一个use strictjshint等人的示例错误。无法接听:

object = new MyObject();
object.position.x = 0;
object.position.y = 10;

// ... lots of code

var newPosition = object.position + 1; // <- this is an error, and should
                                       //    have been object.position.x
                                       //    however it fails *silently*,
                                       //    rather than loudly

newPosition *= 2;                      // <- this doesn't raise any errors either.
                                       //    this code is actually ok if the
                                       //    previous line had been correct

注意:如果类型推断成功,则类型脚本编译器能够检测到类似上面的错误,即使在JS代码中也是如此。

推荐答案

按要求回答问题:

是否有任何现代浏览器会在NAN传播上引发异常(即对NAN进行乘法或加法),或者可以配置为执行此操作?

不。JAVASCRIPT是一种非常宽容的语言,它不在乎你是否想把Math.PI乘以‘马铃薯’(提示:它是NaN)。这只是我们开发人员必须处理的语言的一个缺点(或者好的地方,取决于你的观点)。

解决导致您提出此问题的错误(可能),在对象上使用getter和setter是强制执行此操作的一种可靠方法,还可以防止您犯这样的错误。

这篇关于在JavaScript中按NaN打断符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)