今天我遇到了一个有趣的面试问题,有点难住了我。有人问我关于错误值(value)观的问题。因此,未定义、NaN、null、0 和空字符串都评估为 false。在 JavaScript 中了解这一点很有用的原因是什么?我唯一能想到的是不必这样做:
if (mystring === '' || mystring === undefined) { }
我可以做到这一点:
if (!mystring)
这是唯一有用的应用程序吗?
最佳答案
您必须注意的一个危险的错误值问题是在检查某个属性是否存在时。
假设您想测试新属性的可用性;当此属性可以实际上具有0
或""
值时,您不能简单地使用
if (!someObject.someProperty)
/* incorrectly assume that someProperty is unavailable */
在这种情况下,您必须检查它是否确实存在:
if (typeof someObject.someProperty == "undefined")
/* now it's really not available */
还要注意 NaN
不等于任何东西,甚至不等于它本身 (NaN != NaN
)。
关于javascript - JavaScript 中的错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3982663/