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
。
- parseInt 函数名称不正确。请将
parselnt
替换为 parseInt
匹配模式不正确。这是更新的
var time = timeString.match(/(\d+)(?::)(\d+)(am|pm)/);
我是 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
。
- parseInt 函数名称不正确。请将
parselnt
替换为parseInt
匹配模式不正确。这是更新的
var time = timeString.match(/(\d+)(?::)(\d+)(am|pm)/);