我是否需要在JavaScript中导入或包含内置函数的内容?

时间:2012-06-08 02:27:40

标签: javascript

正如标题所说,或者我可以直接使用它们而不作任何声明? (这似乎是一个愚蠢的问题,但我想确保在这些微妙的方面没有任何问题。)

5 个答案:

答案 0 :(得分:0)

不。除了Javascript之外的所有内容都会自动包含在内。

答案 1 :(得分:0)

没有。浏览器内置的内容会自动生成。浏览器与浏览器内置的内容显然有所不同,但今天的大多数浏览器都实现了一个共同的核心集。

答案 2 :(得分:0)

正如其他人所说,你不必添加任何东西。每个浏览器在javascript实现方面都有不同之处,这就是为什么像jQuery这样的库很受欢迎的原因。他们将这些差异抽象化。

答案 3 :(得分:0)

不幸的是,并非所有浏览器都提供所有可用的方法(特别是较旧的方法)。在这些情况下,人们发布了大量可以包含在脚本中以解决问题的解决方案。例如,对于数组的.indexOf()方法在旧版本的IE中不可用。但是,你可以编写一个非常简单的函数,例如:

if (!Array.indexOf) {
    // Replaces the "indexOf" method for arrays when not available.
    // Used like array_var.indexOf(int)

    Array.prototype.indexOf = function (obj) {
        for (var i=0; i < this.length; i++) {
            if (this[i] == obj) {
                return i;
            }
        }
        return -1;
    }
}

有一些较新的方法可以帮助简化JSON的使用,但在旧版浏览器中不可用。这些功能也包含了人们为您编写的简单功能,以防浏览器不支持。

因此,在大多数情况下,可能所有类型,方法,函数和其他任何您想要使用的Javascript的一部分都可供您使用而无需任何导入,包括或声明。

答案 4 :(得分:0)

不,但您需要注意并非所有环境都具有相同的“内置”功能......

假设您定位网络浏览器,根据浏览器及其版本号,您将无法获得所有相同的功能。

例如,像.map()这样的数组操作函数,或像JSON.parse()这样的JSON操作函数,是相对较新的补充,现在已成为现代浏览器的主流,但不能保证只有少数几个几年前。

所以要小心,具体取决于您的目标平台。

然而,您可以使用不同的库来添加缺少的功能,或者将它们包装起来(例如,我最喜欢的“工具包/实用程序”库之一是underscore.js,或者是更重量级的东西的dojo.js其他更喜欢jQuery,或Prototype等...)。这些通常会委托内置函数(如果存在),或者在需要时使用自己的实现,从而使您不必检查函数是否存在。