gpt4 book ai didi

javascript - 是否对跨浏览器的 native 功能支持进行静态检查?

转载 作者:行者123 更新时间:2023-11-29 15:37:13 27 4
gpt4 key购买 nike

我想知道是否有一个静态检查器可以查看我的 javascript 源代码并告诉我哪些 native 函数我不应该使用或以不同方式使用(如果我希望我的脚本跨浏览器工作)。

例如 Chrome 不知道 String.contains() 但 Firefox 知道。我想得到警告,我应该完全避免 String.contains()

另一个例子是 Array.sort() 的用法,它只有在您的比较函数返回一个 Number 时才能在浏览器中正常工作。所有浏览器也将接受 boolean 值,但在这种情况下行为不一致。关于返回类型的警告会很好。 (分析会复杂得多,甚至可能是不可能的。)

有人知道静态检查器会警告 native 函数的“非 ECMA”使用吗?我搜索了但没有找到任何东西。

最佳答案

您正在寻找的东西称为 polyfill 或 polyfiller。它是检查浏览器上现有行为或功能的代码。如果该功能不存在,则 polifill 会实现它。

http://en.wikipedia.org/wiki/Polyfill

这种实现的一个例子是 Modernizr。 https://github.com/Modernizr/Modernizr

关于 https://github.com/robertkowalski/contains.js/blob/master/contains.js 的 String.contains 方法示例

if (typeof String.prototype.contains == 'function') {
return;
}
String.prototype.contains = function(value, pos) {
var string = this;
... implementation ...
}

关于javascript - 是否对跨浏览器的 native 功能支持进行静态检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26530950/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com