mercurylanded
V2EX  ›  Java

发现个好玩的事情

  •  
  •   mercurylanded · Feb 5, 2024 · 4833 views
    This topic created in 839 days ago, the information mentioned may be changed or developed.

    d 为 null 的时候执行结果是什么

    "\"" + d == null ? "" : d.toString() + "\""
    
    11 replies    2024-02-07 09:34:43 +08:00
    yuhangch
        1
    yuhangch  
       Feb 5, 2024
    > var d = null
    undefined
    > "\"" + d == null ? "" : d.toString() + "\""
    Uncaught TypeError: Cannot read properties of null (reading 'toString')
    mercurylanded
        2
    mercurylanded  
    OP
       Feb 5, 2024
    @yuhangch java 节点当然是 java 代码
    yuhangch
        3
    yuhangch  
       Feb 5, 2024
    @yuhangch 对不起,没看分区,忽略我
    Duolingo
        4
    Duolingo  
       Feb 5, 2024   ❤️ 1
    java.lang.NullPointerException
    ZField
        5
    ZField  
       Feb 5, 2024
    没加括号,按运算符的优先级来,应该直接空指针
    9c04C5dO01Sw5DNL
        6
    9c04C5dO01Sw5DNL  
       Feb 5, 2024
    论括弧的重要性:

    ("\"" + d == null) ? "" : d.toString()
    darkengine
        7
    darkengine  
       Feb 5, 2024
    @giiiiiithub 这样加照样崩,OP 的本意应该是

    "\"" + (d == null ? "" : d.toString()) + "\""
    gil99998888
        8
    gil99998888  
       Feb 6, 2024
    toString 的时候空指针
    dongzhuo777
        9
    dongzhuo777  
       Feb 6, 2024
    很明显啊。。空指针...因为 三元表达式 =false ,输出的是 d.tostring ,d==null 那肯定是空指针了。
    "\"" + d 执行又不影响 d 本来就是 null
    9c04C5dO01Sw5DNL
        10
    9c04C5dO01Sw5DNL  
       Feb 6, 2024
    @darkengine 我给的代码是解释崩的原因,不是避免崩掉
    codingmiao
        11
    codingmiao  
       Feb 7, 2024
    你们居然在认真讨论没有喷谭浩强。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5346 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 03:55 · PVG 11:55 · LAX 20:55 · JFK 23:55
    ♥ Do have faith in what you're doing.