有没有办法让我的 google 脚本使用的 V8 JavaScript 版本保持不变?

Is there a way to make the version of V8 JavaScript that my google script uses constant?

这里是菜鸟

搞乱我的 google 脚本项目我发现了一件奇怪的事情,我使用的一种方法在编辑器中被删除线,它看起来像这样 --> substr。研究,我发现这是因为这种方法被弃用了。对于寻找解决方法的人来说,请查看 documentation in developer.mozilla.org.

起初,我对此没有问题,但是,如果以前没有,现在有,那就意味着我的项目使用的 javascript 版本正在改变,我确实这样做了不想那样。还有我的问题

Is there a way to make the version of V8 JavaScript that my google script uses constant?

查看 app-scripts documentation 我发现它使用 V8 并且在清单中定义了它,但是找不到冻结到某个版本的方法。也许有一个简单的答案,但我不知道还有什么地方可以看。欢迎任何帮助。

不,无法为您的 GAS select 特定的 V8 版本。

也就是说,JavaScript 引擎通常非常注重向后兼容性。 极其很少有功能被删除——在可预见的未来,JS 中有很多“遗留”/“弃用”的东西不会被删除,因为有太多许多旧的和未维护的(但仍在使用)依赖于它们的代码,浏览器制造商不想破坏这些代码。
关于手头的具体情况,如果 String.prototype.substr 被删除,我个人会感到非常惊讶。我认为它的弃用更像是一个“专业提示:如何不混淆 substrsubstring:只使用其中一个”。

FWIW,V8 本身没有弃用 JavaScript 功能的概念。您看到的 strike-through 只是一个编辑器功能。更新或不更新下面的V8版本不会影响它。

退一步说:不幸的是,编写一次软件然后期望它在没有维护或监控的情况下工作几十年通常不是一回事。例如,如果您为 Windows 95 开发了一款游戏,您必须预料到它在现代 Windows 版本上不会 运行 好(或根本不会)。操作系统 SDKs/toolkits、compilers/engines 和编程语言本身随着时间的推移不断演进,保证 backwards-compatibility 持续几年而不是永远。这是技术进步的另一面。出于各种原因,将自己固定到某些过时的版本通常不是一个可行的解决方案。

所以实际上,相比之下,当你在 JavaScript 中编写应用程序或脚本时,你有很大 的机会它在 20 年后仍然可以正常工作。所以我不会太担心它。