为什么 linter 会选择无用的转义字符?

cus*_*der -1 javascript static-analysis eslint

转义字符串、模板文字和正则表达式中的非特殊字符没有任何效果

来源:https://eslint.org/docs/rules/no-useless-escape

但显然这是错误的:

在此输入图像描述

这里没有什么需要“修复”的;我们都知道这是一个完全有效的字符序列。

开个玩笑,这背后的理由是什么?

如果 ESLint 也承认没有什么坏处,那为什么还要麻烦呢?如果您只查看最终结果(我知道该\字符不会被打印出来),那么它可能是无用的,但在“代码就是数据”上下文中,这在进行语法分析时可能是有用的数据。

ESLint 对字符串中的内容进行判断,但它不会改变这段代码:(这对我来说也没什么用)

var x = 10;
var y = x + 0;
var z = y * 1;
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 5

如果转义字符没有做任何有用的事情,那么它在那里做什么?

也许代码的编写者想要一个字面上的反斜杠字符。该错误引起了人们的注意,以便他们可以替换\\\

也许他们认为下一个角色需要逃跑。这对他们进行了其他方面的教育。

也许这只是一个错字。

既然没有充分的理由去\那里,那就只能有不好的理由。有些比其他更严重,但 linter 会引起人们对它们的注意。