【发布时间】:2017-11-28 13:27:59
【问题描述】:
我看到有人这样做
if(typeof myVar === 'string' && myVar.length > 0) {
}
为什么不只是if(myVar) {} ??
我使用 typeof 进行调试,从不在实际应用中使用它。
【问题讨论】:
-
如果
myVar的值是18或对象引用怎么办?该测试确保该值是非空字符串。只是测试它是否是真的可能会导致错误。 -
显然是因为他们的
myVar并不总是一个字符串。当然,这不是最佳做法,但我们能做些什么呢? -
哪些人?他们在哪里做这个?你问过他们为什么吗?我们怎么知道,我们不是该代码的作者?
-
这个问题最好在一个特定的上下文中回答,你看到这个结构被使用,我们可以看到周围的代码,然后回答为什么作者决定使用这个。显然,通用答案是因为作者想确保他们被传递一个不为空的字符串(不是数字,不是数组,不是对象,不是布尔值,等等......)。为什么要进行检查完全取决于您未包含的代码的上下文。
标签: javascript reactjs ecmascript-6