我当前项目的大多数开发人员使用(对我来说)奇怪的方式来检查 ECMAScript 中的空字符串:
if (theString.length == 0)
// string is empty
我通常会这样写:
if (theString == "")
// string is empty
后一个版本对我来说更具可读性和自然性。
我问过的人似乎都无法解释版本 1 的优点。我猜想在过去的某个时候有人告诉每个人这是这样做的方法,但现在那个人离开了,没有人记得为什么要这样做这样做。
我想知道为什么我应该选择第一个版本而不是第二个版本?有关系吗,一个版本比另一个版本好吗?出于某种原因,一个版本是否更安全或更快?
(我们实际上是在符合 ECMAScript Edition 4 的 Siebel eScript 中执行此操作的)
谢谢。
最佳答案
我实际上在许多语言中更喜欢这种技术,因为有时很难区分空字符串文字 ""
和其他几个字符串(""
,'"'
).
但是在 ECMAScript 中避免 theString == ""
还有另一个原因:0 == ""
求值为 true
,false == ""
和 0.0 == ""
...
...因此,除非您知道 theString
是实际上是一个字符串,否则您最终可能会因为使用 weak 给自己带来问题比较。幸运的是,您可以通过明智地使用严格等于 (===
) 运算符来避免这种情况:
if ( theString === "" )
// string is a string and is empty
另见:
关于javascript - 在 ECMAScript 中检查空字符串时,为什么我应该使用 string.length == 0 而不是 string == ""?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1829611/