在Javascript中将字符串强制转换为布尔值
在Javascript中,两者之间有什么区别吗在Javascript中将字符串强制转换为布尔值,javascript,string,types,casting,boolean,Javascript,String,Types,Casting,Boolean,在Javascript中,两者之间有什么区别吗 if(!!isLoaded)和if(Boolean(isLoaded)) 我最近开始开发一个应用程序,以前的开发人员经常这样做 我运行了一些测试,它们似乎都将字符串“true”和“false”转换为布尔类型,我认为这是执行此操作的主要原因 如果它们确实是相同的,那么每个人对哪一个更具可读性有什么看法 我个人感觉到了更容易阅读。不过,它们都转换为布尔值 然而,正如jaromeda提到的,这两种方法都不适用于这种情况。字符串“true”和“false”
if(!!isLoaded)
和if(Boolean(isLoaded))
我最近开始开发一个应用程序,以前的开发人员经常这样做
我运行了一些测试,它们似乎都将字符串“true”和“false”转换为布尔类型,我认为这是执行此操作的主要原因
如果它们确实是相同的,那么每个人对哪一个更具可读性有什么看法 我个人感觉到了
代码>更容易阅读。不过,它们都转换为布尔值
然而,正如jaromeda提到的,这两种方法都不适用于这种情况。字符串“true”和“false”都会导致true,因为值存在。如果(!!isLoaded)
和如果(Boolean(isLoaded))
将等同于如果(isLoaded)
,因为JavaScript只查找如果
条件的真实值。如果您需要特定的字符串“true”
和“false”
,您需要直接与进行比较,如果(isLoaded==“true”)
空字符串在JS中已被视为负条件,那么实际上,。。。
以下在JS中被视为阴性条件:
两者都将字符串0
和“true”
转换为布尔值“false”
。但是,是的,它们做的事情完全相同。更具可读性并不意味着更具可读性,也不意味着做你想做的事情。它们之间没有什么区别,而且它们也相当于true
,我认为这是最具可读性的。是的@Barmar是正确的(毫不奇怪)-这些转换通常在您确实需要跟踪实际布尔值时使用;如果它只是一个if(isLoaded)
语句,那就没有意义了,因为对if
条件的求值无论如何都会做完全相同的事情。if