为什么在VS Code中JavaScript的substr函数有删除线效果?

3
let thesentence = 'I having a good day'
console.log(thesentence.substr(0,4))

substr 有删除线效果,但使用 substring 没问题。


因为它已被弃用,请使用类似.substring()的方法代替。 - Nick Parsons
1
如果你将鼠标悬停在方法上,vscode会显示原因@deprecated - 用于浏览器兼容性的遗留功能 - pilchard
因为那个 API 已经被弃用了。你可以阅读文档获取更多信息。 - Rajesh
看这个substr - brk
哦!明白了!谢谢大家! - user18318036
这是因为它从未成为标准化语言的一部分,所以已被弃用。它在 ECMAScript 1 或 2 规范中根本不存在,只出现在 ECMAScript 3 的 B.2 节("Additional Properties")中(以及随后的版本中类似的附件,直到目前为止 [截至本文撰写时的 ES2022 草案])。请参阅更多 - ninhjs.dev
1个回答

1

它被划掉是因为它已经过时了。这是一个JS/TS VS Code的特性,被弃用的内容会以删除线的效果显示出来。

如果你将鼠标悬停在上面并等待悬停信息出现,你会看到这个:

@deprecated — 一个为了浏览器兼容性而存在的旧特性

在类型定义的文档注释中(由lib.es5.d.ts定义,是TypeScript的一部分),@deprecated注解告诉VS Code它已经被弃用了。你可以在这个提交中找到将其标记为弃用的TypeScript类型定义的更改:Update lib types to mark Annex B as deprecated (#43710)

要了解为什么substr被弃用,请参阅Why is String.prototype.substr() deprecated?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接