多个Javascript函数的奇怪行为

时间:2015-09-16 15:41:41

标签: javascript html internet-explorer

当我在.js文件中有多个函数时,我对javascript文件有一些奇怪的行为。

我有一个Logging.js文件,该文件写入文本文件:

function WriteLog(message)
{
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var textFile = fso.OpenTextFile("C:\\Users\\sysadmin\\Desktop\\Tom's Work Area\\file.txt", 8, true);

    textFile.WriteLine(message);
    textFile.Close();
}

我在我的HTML中调用此函数是这样的:

<head>
     <script src="C:\\Users\\sysadmin\\Desktop\\Tom's Work Area\\Logging.js" type="text/Javascript" </script>
</head>

<body>
    <script>
        WriteLog("text");
    </script>
</body>

但是,当我向Logging.js文件中添加另一个函数时,它的工作正常:

function getDate()
{
    try{
    var date = new Date();

    var year = date.getFullYear();

    var day = date.getDate();
    if (day < 10)
    {
        day = "0" + day;
    }

    var month = date.getMonth() + 1;
    if (month < 10)
    {
        month = "0" + month;
    }

    var hour = date.getHours();

    var minutes = date.getMinutes();
    if (minutes <= 9)
    {
        minutes = "0" + minutes;
    }

    var seconds = date.getSeconds();
    if (seconds <= 9)
    {
        seconds = "0" + seconds;
    }

    var dateString = "" + day "/" + month + "/year" + " " + hours + ":" + minutes ":" + seconds;

    return dateString;
    }

    catch(e)
    {
        Script.writeln(e.description);
    }
} 

然后写入文本文件甚至不起作用,就像Logging.js文件不再起作用一样!即使我没有调用getDate()函数。

有什么想法?谢谢!

2 个答案:

答案 0 :(得分:2)

错字:

var dateString = "" + day "/" + m

var dateString = "" + day + "/" + m

字符串concat上缺少+。分钟也缺少一个+号。

答案 1 :(得分:1)

您的其他代码有语法错误,导致整个Logging.js无法编译,因此无法运行。

避免将来发生此类事情的最佳方法是在部署之前始终通过语法检查程序或lint检查程序运行代码。

例如,JS Hint会立即收到此错误。好的做法是建立一个“构建”过程,每次更新代码时都会自动运行这些类型的检查。这个概念被称为“持续集成”,是使代码健壮并避免将尴尬错误部署到实时系统的关键因素。