发现个好玩的事情

2024-02-05 17:10:37 +08:00
mercurylanded  mercurylanded

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

"\"" + d == null ? "" : d.toString() + "\""
3048 次点击
所在节点   Java  Java
11 条回复
yuhangch
yuhangch
2024-02-05 17:13:17 +08:00
> var d = null
undefined
> "\"" + d == null ? "" : d.toString() + "\""
Uncaught TypeError: Cannot read properties of null (reading 'toString')
mercurylanded
mercurylanded
2024-02-05 17:13:49 +08:00
@yuhangch java 节点当然是 java 代码
yuhangch
yuhangch
2024-02-05 17:13:50 +08:00
@yuhangch 对不起,没看分区,忽略我
codingadog
codingadog
2024-02-05 17:17:22 +08:00
java.lang.NullPointerException
ZField
ZField
2024-02-05 17:20:03 +08:00
没加括号,按运算符的优先级来,应该直接空指针
9c04C5dO01Sw5DNL
9c04C5dO01Sw5DNL
2024-02-05 18:46:20 +08:00
论括弧的重要性:

("\"" + d == null) ? "" : d.toString()
darkengine
darkengine
2024-02-05 23:26:29 +08:00
@giiiiiithub 这样加照样崩,OP 的本意应该是

"\"" + (d == null ? "" : d.toString()) + "\""
gil99998888
gil99998888
2024-02-06 10:23:20 +08:00
toString 的时候空指针
dongzhuo777
dongzhuo777
2024-02-06 11:47:10 +08:00
很明显啊。。空指针...因为 三元表达式 =false ,输出的是 d.tostring ,d==null 那肯定是空指针了。
"\"" + d 执行又不影响 d 本来就是 null
9c04C5dO01Sw5DNL
9c04C5dO01Sw5DNL
2024-02-06 12:09:58 +08:00
@darkengine 我给的代码是解释崩的原因,不是避免崩掉
codingmiao
codingmiao
2024-02-07 09:34:43 +08:00
你们居然在认真讨论没有喷谭浩强。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1014455

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX