JavaScript。警告一个字符串

JavaScript. Alerting a string

我是 JavaScript 的新手。所以,我试图解决一个练习——宣布电影放映时间。我已经检查过它出了什么问题,但我什么也没发现。当我打开 index.html 文件时,没有任何反应。这是我的代码:

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Cinema</title>
    <script src="cinema.js"></script>
</head>
<body>

</body>
</html>

cinema.js

var movie1={
    name: "Star Wars: Force Awakens",
    showtimes: ["3:00pm","7:00pm","11:00pm"],
    genre: "Cult Classic",
    rating: 2
};
var movie2={
    name: "Doctor Strange",
    showtimes: ["5:00pm","9:00pm"],
    genre: "Action",
    rating: 5
};

window.onload = function (){
    var nextShowing=getNextShowing(movie1);
    alert(nextShowing);
    nextShowing=getNextShowing(movie2);
    alert(nextShowing);

}
function getNextShowing(movie){
    var now=new Date().getTime();

    for(var i=0;i<movie.showtimes.length;i++){
        var showtime = getTimeFromString(movie.showtimes[i]);
        if((showtime-now)>0) {
            return "Next showing of "+movie.name+" is "+movie.showtimes[i];
    }
}
    return null;
}

function getTimeFromString(timeString){
    var theTime = new Date();
    var time = timeString.match(/(\d+)(?::(\d\d))?\s*(p?) /);
    theTime.setHours( parselnt(time[1]) +(time[3] ? 12 : 0) );
    theTime.setMinutes( parseInt(time[2])|| 0 );
    return theTime.getTime();
}

哪里可能有问题?

更新:

function getNextShowing(movie){
    var now=new Date().getTime();

    for(var i=0;i<movie.showtimes.length;i++){
        var showtime = getTimeFromString(movie.showtimes[i]);
        if((showtime-now)>0) {
            return "Next showing of "+movie.name+" is "+movie.showtimes[i];
    }
}
    return null;
}

function getTimeFromString(timeString){
    var theTime = new Date();
    var time = timeString.match(/(\d+)(?::(\d\d))?\s*(p?) /);
    theTime.setHours( parseInt(time[1])+(time[3] ?12 : 0) );
    theTime.setMinutes(parseInt(time[2])|| 0 );
    return theTime.getTime();
}

仍然没有任何反应

您的 parseInt 拼写错误(您将其写为 parselnt)。

随着您继续学习 Javascript,调试的第一个调用端口应该是打开浏览器的开发人员 tools/console。

例如,在 Google Chrome 中,您可以按 Ctrl + Shift + i 来执行此操作。

控制台应提供有关您 javascript 遇到的任何运行时错误的详细信息,这将是您诊断问题的第一步。

我可以看到这里有错别字 theTime.setHours( parselnt(time[1]) +(time[3] ? 12 : 0) ); 应该是 parseInt

  1. parseInt 函数名称不正确。请将 parselnt 替换为 parseInt
  2. 匹配模式不正确。这是更新的

    var time = timeString.match(/(\d+)(?::)(\d+)(am|pm)/);