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