前端
                
            
            
            
                 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,否则使用一个空对象字符串"{}"作为备选值进行解析。