Sonar 代码检测常见问题及修改实例(前端JS版本)

举报
liuzhen007 发表于 2022/01/12 00:12:54 2022/01/12
【摘要】 ​目录前言问题1. Correct this attempt to modify "candidates" or use "let" in its declaration.2. Expected an assignment or function call and instead saw an expression.3. Consider using "forEach" instead of...

目录


前言

问题

1. Correct this attempt to modify "candidates" or use "let" in its declaration.

2. Expected an assignment or function call and instead saw an expression.

3. Consider using "forEach" instead of "map" as its return value is not being used here.

4. Unreachable code.

5. Duplicate key 'speakerDeviceList'.

6. Add the "let", "const" or "var" keyword to this declaration of "win" to make it explicit.


前言

Sonar 作为优秀的代码静态检测工具,咱们怎么能落下呢。这不,今天就把环境搭起来了,先拿一个 JS 工程试一试吧。

问题

rcroom 工程是一个 JS 语言为主的工程项目,集成到 Sonar 检测系统中,果然有不少问题,具体的问题清单,如下图所示:

Sonar 中所有的问题按照类型划分,可以分为 Bug、漏洞、异味三种,按照严重程度划分,可以分为阻断、严重、主要、次要、提示五档。如上图所示,该项目 Bug 69个,漏洞0个,异味71个;阻断的19个,主要42个,次要8个,严重和提示均为0个。下面针对上述问题中比较典型展开讨论。

1. Correct this attempt to modify "candidates" or use "let" in its declaration.

问题代码:

修复:

candidates 变量声明时使用 let 代替 const。

2. Expected an assignment or function call and instead saw an expression.

问题代码:

修复:

其实是一个笔误的 bug,修改成赋值语句或者函数调用的形式,而不是表达式。

去掉一个等号 “=” 即可。

3. Consider using "forEach" instead of "map" as its return value is not being used here.

问题代码:

修复:

把 map 方法替换为 forEach 方法即可。

4. Unreachable code.

问题代码:

解决:

去掉 break; 代码行,其实,有些规则不必太死板,有些编码规则就要求每个 case 后边必须跟一个 break;语句。也是可以存在特例的。

5. Duplicate key 'speakerDeviceList'.

问题代码: 

解决:

报错原因是重复声明了,不提示的话确实不容易看出来,哈哈。 瞬间发现了 Sonar 的好处。

6. Add the "let", "const" or "var" keyword to this declaration of "win" to make it explicit.

问题代码:

修复:

显式的定义一个全局变量 win,代码如下:

let win


作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,😄公众号:玩转音视频。同时也是 CSDN 博客专家、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!😄



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。