当前位置:  开发笔记 > 编程语言 > 正文

是什么导致了这些javascript验证错误(隐含的全局和已定义的var)?

如何解决《是什么导致了这些javascript验证错误(隐含的全局和已定义的var)?》经验,为你挑选了1个好方法。

任何人都可以解释为什么:

function doAjax() {
    var xmlHttpReq = false;
    try { // Firefox, Opera 8.0+ and Safari
        xmlHttpReq = new XMLHttpRequest();
    }
    catch (e) { // Internet Explorer
        try {
            xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                alert("Your browser does not support AJAX. Please use an AJAX compatible browser.");
                return false;
            }
        }
    }
    xmlHttpReq.open('GET', 'handler.php', true);
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
            var response = xmlHttpReq.responseText;
            handleAjaxResponse(response);
        }
    };
    xmlHttpReq.send(null);
    return true;
}

导致以下验证错误:

Error:

Implied global: ActiveXObject 8, XMLHttpRequest 4, alert 15, handleAjaxResponse 24

Problem at line 10 character 16: 'e' is already defined.

catch (e) {

Problem at line 14 character 20: 'e' is already defined.

catch (e) {

由JSlint.com javascript验证器



1> Aron Rotteve..:

关于第一个错误,这里是JSLint文档的一个例外:

未定义的变量和函数

JavaScript最大的问题是它依赖于全局变量,特别是隐含的全局变量.如果未显式声明变量(通常使用var语句),则JavaScript假定变量是全局变量.这可以掩盖拼写错误的名称和其他问题.

JSLint期望在使用或调用所有变量和函数之前声明它们.这允许它检测隐含的全局变量.这也是一种很好的做法,因为它使程序更容易阅读.

有时文件依赖于全局变量和其他地方定义的函数.您可以通过在文件中包含注释来标识这些注释,这些注释列出了程序所依赖的全局函数和对象,但未在程序或脚本文件中定义.

全局声明可能如下所示:

/*global getElementByAttribute, breakCycles, hanoi */

全球宣言始于 /*global.请注意,g之前没有空格.您可以拥有任意数量的/*global评论.它们必须在使用它们指定的变量之前出现.

关于您的问题,以下部分最有可能帮助您解决错误:

可以为您预定义一些全局变量.选择"假设浏览器(浏览器)"选项(请参阅下面的"选项")以预定义Web浏览器提供的标准全局属性,例如窗口和文档以及警报.选择Assume Rhino(rhino)选项以预定义Rhino环境提供的全局属性.选择"假设Yahoo Widget(小部件)"选项以预定义Yahoo!提供的全局属性.小部件环境.

第二个错误是因为给你再使用变量" e"为每个异常,包括嵌套的.重命名每个异常的变量以避免这种情况.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有