Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中将字符串强制转换为布尔值_Javascript_String_Types_Casting_Boolean - Fatal编程技术网

在Javascript中将字符串强制转换为布尔值

在Javascript中将字符串强制转换为布尔值,javascript,string,types,casting,boolean,Javascript,String,Types,Casting,Boolean,在Javascript中,两者之间有什么区别吗 if(!!isLoaded)和if(Boolean(isLoaded)) 我最近开始开发一个应用程序,以前的开发人员经常这样做 我运行了一些测试,它们似乎都将字符串“true”和“false”转换为布尔类型,我认为这是执行此操作的主要原因 如果它们确实是相同的,那么每个人对哪一个更具可读性有什么看法 我个人感觉到了更容易阅读。不过,它们都转换为布尔值 然而,正如jaromeda提到的,这两种方法都不适用于这种情况。字符串“true”和“false”

在Javascript中,两者之间有什么区别吗
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
    。但是,是的,它们做的事情完全相同。更具可读性并不意味着更具可读性,也不意味着做你想做的事情。它们之间没有什么区别,而且它们也相当于
    if(isLoaded)
    ,我认为这是最具可读性的。是的@Barmar是正确的(毫不奇怪)-这些转换通常在您确实需要跟踪实际布尔值时使用;如果它只是一个
    if
    语句,那就没有意义了,因为对
    if
    条件的求值无论如何都会做完全相同的事情。