【发布时间】:2020-08-30 01:59:11
【问题描述】:
转义字符串、模板文字和正则表达式中的非特殊字符没有任何效果
来源:https://eslint.org/docs/rules/no-useless-escape
但显然这是错误的:
这里没有什么可以“修复”的;我们都知道这是一个完全有效的字符序列。
开玩笑说这背后的原因是什么?
如果连 ESLint 都承认没有害处,那何必呢?如果你只看最终结果可能没用(我知道\ 字符不会被打印出来)但是在 "code is data" 上下文中,这可能是有用的数据在进行语法分析时。
ESLint 对字符串中的内容做出判断,但它不会与这段代码让步:(这对我来说也没什么用)
var x = 10;
var y = x + 0;
var z = y * 1;
【问题讨论】:
-
只记录字符串,你就会看到问题
-
@Andreas 我知道“问题”是什么。这不是重点。
-
转义字符没有用,很可能会以不希望的方式更改字符串的内容。那么为什么不应该反对呢?
-
@Andreas 我不确定内容是否是这里的问题,
'\a'.length是 1 而不是 2。如果错误消息说类似 “你的意思是转义这个字符?” 或 “您可能需要转义 \,因为它不会被打印出来”. -
@customcommander — 嗯。所以你可以理解目的,但你只是想抱怨错误信息不够可爱?
标签: javascript eslint static-analysis