【问题标题】:Conditional checking in javascript [duplicate]javascript中的条件检查[重复]
【发布时间】:2013-02-06 03:55:22
【问题描述】:

两者有什么区别:

!!(obj1 && obj2);

 (obj1 && obj2);

【问题讨论】:

  • console.log('a' && 'b', !!('a' && 'b')); --- 你问之前为什么不试试?是的,我知道,这很无聊,但检查自己需要 10 秒。 -1 懒惰

标签: javascript jquery object


【解决方案1】:

第一个可能会返回一个字符串或一个对象,第二个会返回一个布尔值。

因为javascript中对象可以是真值,A && B如果是真值,会返回B的值,这可能是一个对象。但是使用!!会将其转换为布尔值,因为 !B 会将其转换为 true 或 false,而第二个 !会将其移动到正确的布尔值

两者不同的例子:

var a = "test", b ="example"
var ex1 = ((a && b)   === true)  // false
var ex2 = (!!(a && b) === true)  // true

【讨论】:

    【解决方案2】:

    没有。

    一般情况下,!! 用于在不使用函数调用的情况下转换为布尔值,类似于0^ 可用于转换为整数,""+ 可用于转换为字符串等。

    但是,在这种情况下,假设它位于 if 语句中,则根本没有区别,因为 if 隐式“强制转换”为布尔值以查看其是否为真。

    【讨论】:

    • “没有。” - - 这不是真的。你的假设太多了
    猜你喜欢
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    相关资源
    最近更新 更多