ESLint 规则中的 no-extra-semi 详解

ESLint 规则中的 no-extra-semi 详解

当你使用 ESLint 对 JavaScript 代码进行检查时,你可能会遇到“no-extra-semi”规则。这个规则用来检查 JavaScript 代码中是否存在多余的分号。虽然一些开发者认为这些分号是很显然的错误,但是在某些情况下却不是这样。

了解 no-extra-semi

no-extra-semi 是 ESLint 中的一个常见规则,它的作用是:检查代码中是否存在多余的分号,将其视为一种语法错误(Syntax Error),从而强制执行好的代码风格。可以通过以下方式启用 no-extra-semi 规则:

---------------- -------

no-extra-semi 的工作逻辑使用了 ESTree 规范中的分析过程,利用 FParsec 去 匹配并对代码提出警告指标。这个规则的实现经过最大匹配工具,能够避免类似这样子的情况:

--- --- - --- -
-----------------

实际上,多余的分号虽然在现代浏览器下并不会产生副作用,但是在某些老版本的浏览器中,就会使代码编译不过并出现错误。因此,在新老浏览器间的兼容性上,还是有必要执行好这个规则。

如何避免 no-extra-semi

为了避免 no-extra-semi ,一个常见的技巧是,在每个注释块、函数、类以及控制流结尾处使用分号。忽略了这些结构有可能是你在代码被 SAS 程序打包压缩后,导致代码异常而需要注意。

示例代码:

-------- ------------
  ------ ------ - - -----
-- -- ------ --- ----------- -- ----- ------------- ------
 
---------------------------

总结

在审阅代码时候,如果能够正确的配置好规则并且掌握好 no-extra-semi 这个规则,将会使代码变得更加的规范,不至于出现令人尴尬的语法错误和代码异常。学会使用这个规则可以大大提高开发效率和代码质量。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6540c31c7d4982a6eba510d8


猜你喜欢

  • 微信小程序模式下的 SPA - 路由控制

    随着微信小程序的发展,越来越多的开发者开始使用微信小程序来构建他们的应用程序。微信小程序的特点是快速启动,轻量级,但是在某些方面,比如路由控制方面,与传统的 SPA (Single Page Appl...

    1 年前
  • Serverless 架构下前端应用的部署与管理

    随着云计算技术的不断发展,Serverless 架构已经成为了一种非常流行的应用部署模式。在 Serverless 架构中,我们可以轻松地将应用部署到云端,并且只需要按照实际使用量来支付费用。

    1 年前
  • Cypress 如何进行移动应用自动化测试?

    前言 移动应用自动化测试是现代软件开发中不可或缺的一部分。Cypress 是一个流行的前端自动化测试框架,它可以用于测试 Web 应用、桌面应用和移动应用。在本文中,我们将重点介绍 Cypress 如...

    1 年前
  • SASS 与 Compass 框架配合使用出现的问题及解决方式

    前言 SASS 是一种 CSS 预处理器,可以让开发者编写更加灵活、易于维护的 CSS 代码。而 Compass 是基于 SASS 的一个框架,提供了一系列的 CSS 样式库和工具,可以帮助开发者更快...

    1 年前
  • 在 ES9 中如何使用可选链 (optional chaining) 运算符

    在 ES9 中如何使用可选链 (optional chaining) 运算符 随着前端技术的不断发展,JavaScript 语言的更新也越来越频繁。在 ES9 中,新增了可选链 (optional c...

    1 年前
  • 从 ES6 到 ES7 细说 JS 的异步变革:Generator,Promise,async/await

    从 ES6 到 ES7 细说 JS 的异步变革:Generator,Promise,async/await 随着前端技术的飞速发展,JavaScript 作为前端开发的主要语言,也在不断地更新和改进。

    1 年前
  • Webpack 的 Loader 和 Plugin 详解

    前言 Webpack 是一个广泛使用的前端打包工具,它可以将多个文件打包成一个或多个文件,并提供了丰富的插件和 loader 功能。在这篇文章中,我们将深入探讨 Webpack 的 Loader 和 ...

    1 年前
  • 如何使用 Jest 测试 React

    在前端开发中,测试是一个非常重要的环节。而在 React 开发中,Jest 是一个非常流行的测试框架。本文将介绍如何使用 Jest 测试 React 组件,并提供一些实用的示例代码。

    1 年前
  • ECMAScript 2020 (ES11):Top Level Await 详解

    在 JavaScript 中,异步编程是非常重要的。ES6 引入了 Promise 和 async/await,使得异步编程更加简单和优雅。而在 ECMAScript 2020 (ES11) 中,又引...

    1 年前
  • 如何在 Create React App 中使用 Babel 7

    什么是 Create React App? Create React App 是一个来自 Facebook 官方的脚手架工具,它可以帮助开发者快速搭建一个 React 应用的基础结构。

    1 年前
  • 在 Koa 项目中使用 async/await 实现异步操作

    在 Koa 项目中使用 async/await 实现异步操作 在前端开发中,异步操作是非常常见的。Koa 是一个 Node.js 的 Web 框架,它采用了异步的方式来处理请求和响应。

    1 年前
  • 在 Gatsby 中使用 Headless CMS

    什么是 Headless CMS Headless CMS 是指将内容管理系统(Content Management System)的后端和前端分离,只保留后端管理界面,前端则通过 API 获取数据并...

    1 年前
  • 使用 ESLint 代码检查实现 JavaScript 项目规范化

    在开发 JavaScript 项目时,我们经常会遇到以下问题: 代码风格不统一,不同开发者编写的代码风格不同,导致阅读和维护困难。 代码质量不可控,缺乏代码规范和统一的编码风格,容易产生一些隐蔽的问...

    1 年前
  • Node.js Socket.io 实时应用实战

    什么是 Socket.io? Socket.io 是一个基于 Node.js 的实时应用程序框架,它允许服务器和客户端之间进行双向通信。Socket.io 提供了一个简单易用的 API,使得开发者可以...

    1 年前
  • 如何使用 Server-Sent Events 实现 Ajax 推送

    在前端开发中,我们经常需要实现实时更新数据的功能,比如聊天室、股票行情、新闻推送等。传统的实现方式是轮询或者 WebSocket,但这两种方式都有一些缺点。轮询会造成网络流量浪费,而 WebSocke...

    1 年前
  • Mongoose 数组类型字段查询方法详解

    在 MongoDB 中,数组类型是一种常见的数据类型,它可以存储多个值,并且可以嵌套在其他类型的数据中。在 Mongoose 中,我们可以使用数组类型字段来存储一组相关的数据。

    1 年前
  • 如何使用 Next.js 和 Prisma 构建全栈应用

    在现代 Web 开发中,构建全栈应用已经成为了一种趋势。Next.js 和 Prisma 是两个非常流行的技术,它们可以帮助我们快速、高效地构建全栈应用。本文将介绍如何使用 Next.js 和 Pri...

    1 年前
  • 数据库查找优化之 GraphQL 解决方案

    在前端开发中,经常需要从后端数据库中获取数据。然而,数据库查询是一个耗时的操作,特别是在大型项目中。因此,优化数据库查询是提高应用性能的重要一环。本文将介绍一种名为 GraphQL 的解决方案,它可以...

    1 年前
  • Deno 应用中使用 koa-session 进行会话管理

    前言 Deno 是一个新兴的 JavaScript 和 TypeScript 运行时环境,它的出现给前端开发带来了新的选择。与 Node.js 不同的是,Deno 内置了很多 Node.js 中需要安...

    1 年前
  • Kubernetes 中的基于角色的访问控制

    Kubernetes 是一个开源的容器编排系统,它提供了一种统一的方式来管理和部署容器化应用程序。在 Kubernetes 中,基于角色的访问控制是一个非常重要的功能,可以帮助管理员更好地管理集群中的...

    1 年前

相关推荐

    暂无文章