前端
2025-01-14
2025-01-14
你凭什么以为你十年寒窗,抵得过我三代从商。——盛田昭
主要是这个pr:
https://github.com/apache/shenyu-dashboard/pull/518
发现原来是JSON.parse
的时候,由于handler
是undefined
导致报错
改为
1 |
|
JSON.parse(handle ?? "{}")
这个表达式涉及到了两部分的知识点:空值合并操作符(??
)和JSON.parse()
。
-
空值合并操作符(
??
):- 空值合并操作符(nullish coalescing operator)
??
用于判断一个值是否为null
或undefined
,如果是,则返回右边的值。如果左边的值不是null
或undefined
,则返回左边的值。 - 在这个表达式中,
handle ?? "{}"
的作用是:如果handle
的值是null
或undefined
,就返回"{}"
,否则返回handle
的值。
- 空值合并操作符(nullish coalescing operator)
-
JSON.parse()
:JSON.parse()
是一个用于将JSON格式的字符串转换成JavaScript对象的方法。在这里,handle ?? "{}"
返回一个JSON字符串,JSON.parse()
将其解析成JavaScript对象。- 如果
handle
是null
或undefined
,最终会解析一个空对象{}
,否则会解析handle
的内容。
举个例子:
1 |
|
如果handle
是null
或undefined
,则会解析成一个空对象:
1 |
|
简而言之,JSON.parse(handle ?? "{}")
的目的是:确保handle
不是null
或undefined
,否则使用一个空对象字符串"{}"
作为备选值进行解析。