Javascript 为什么我应该使用string.length==0而不是string="&引用;在ECMAScript中检查空字符串时?
我当前项目中的大多数开发人员使用(对我来说)一种奇怪的方式来检查ECMAScript中的空字符串:Javascript 为什么我应该使用string.length==0而不是string="&引用;在ECMAScript中检查空字符串时?,javascript,string-comparison,ecmascript-4,Javascript,String Comparison,Ecmascript 4,我当前项目中的大多数开发人员使用(对我来说)一种奇怪的方式来检查ECMAScript中的空字符串: if (theString.length == 0) // string is empty 我通常会这样写: if (theString == "") // string is empty 后一个版本对我来说更具可读性和自然性 我问过的人似乎都无法解释版本1的优点。我猜在过去的某个时候,有人告诉大家这是一种方法,但现在那个人离开了,没有人记得为什么要这样做 我想知道是否有理由我
if (theString.length == 0)
// string is empty
我通常会这样写:
if (theString == "")
// string is empty
后一个版本对我来说更具可读性和自然性
我问过的人似乎都无法解释版本1的优点。我猜在过去的某个时候,有人告诉大家这是一种方法,但现在那个人离开了,没有人记得为什么要这样做
我想知道是否有理由我应该选择第一个版本而不是第二个版本?这有关系吗,一个版本比另一个好吗?出于某种原因,一个版本更安全还是更快
(我们实际上是在Siebel eScript中这样做的,它符合ECMAScript版本4)
谢谢。问题是,如果
字符串设置为0
(零),您的第二个示例将计算为true。我实际上更喜欢在许多语言中使用这种技术,因为有时很难区分空字符串文本”
和其他几个字符串(”
,)“”
)
但是还有另一个避免使用ECMAScript中字符串的原因:0===“true
,false==“
和0.0==”
…因此,除非您知道字符串
实际上是一个字符串,否则使用弱比较可能会给您自己带来问题。幸运的是,您可以通过明智地使用严格相等(==
)运算符来避免这种情况:
if ( theString === "" )
// string is a string and is empty
另见: