mercurylanded
V2EX  ›  Java

发现个好玩的事情

  •  
  •   mercurylanded · Feb 5, 2024 · 5897 views
    This topic created in 1001 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
    yuhangch
    Feb 5, 2024
    1
    > var d = null
    undefined
    > "\"" + d == null ? "" : d.toString() + "\""
    Uncaught TypeError: Cannot read properties of null (reading 'toString')
    mercurylanded
    mercurylanded
    OP
    Feb 5, 2024
    2
    @yuhangch java 节点当然是 java 代码
    yuhangch
    yuhangch
    Feb 5, 2024
    3
    @yuhangch 对不起,没看分区,忽略我
    Duolingo
    Duolingo
    Feb 5, 2024❤️1
    4
    java.lang.NullPointerException
    ZField
    ZField
    Feb 5, 2024
    5
    没加括号,按运算符的优先级来,应该直接空指针
    9c04C5dO01Sw5DNL
    9c04C5dO01Sw5DNL
    Feb 5, 2024
    6
    论括弧的重要性:

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

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