Javascript日期对象混淆
Javascript date object confusion
作业中的问题是:
我写的代码是这样的:创建名为dateUS()的函数。
这个函数将接受Date对象作为参数。它将根据参数的值返回如下格式的字符串'mm/dd/yyyy'。
function getMonth(today) {
var inMo = today.getMonth();
inMo += 1;
return inMo;
}
function dateUS(inDate) {
document.write(getMonth(today) + "/" + today.getDate() + "/" + today.getFullYear());
}
我不明白"inDate"在这段代码中做什么?我想知道这是否是我得到这个输出的原因:5/7/2014undefined
我不明白"接受日期对象作为参数"有人能解释吗?请保持简单。这是一门Javascript 101课程,我只是在学习。非常感谢您的帮助。
函数参数允许函数对不同的输入进行操作。在本例中,inDate
是调用函数时提供的参数的本地名称。所以函数应该是:
function dateUS(inDate) {
document.write(getMonth(dateUS) + '/' + dateUS.getDate() + '/' + dateUS.getFullYear());
}
如果你想写今天的日期,你可以这样调用函数:
dateUS(today);
问题中没有足够的信息来解释为什么undefined
在日期之后显示。我猜你在做这样的事情:
document.write(dateUS(today));
如果dateUS
返回它的结果而不是自己编写它,这将是合适的。这可能是更好的定义方式,但你不是这样做的。
函数可以访问三种类型的数据:
- 在函数作用域之外创建的数据(全局变量)。
- 函数内创建的数据。
- 作为参数传递给函数的数据。
因此,如果你有一个函数将date对象转换为字符串,你要么想使用全局变量(#1),要么将date对象作为参数传递(#3)。你通常想要使用后者,因为它更灵活,并且不需要你的函数了解围绕它的代码,这意味着你可以在另一个项目或代码的其他地方使用它。
例如,如果你想把两个数字相加,你可以写这个函数:
function add(a, b){
return a + b;
}
您可以这样调用它:add(5, 6);
,它将返回11。
现在,我们可以将其扩展到date对象。
function dateUS(date){
return date.getDate();
}
这个函数将返回date
的getDate
方法的返回值,但是你需要修改它来适应你的赋值。
var date1 = new Date(); // Now
var date2 = new Date(0); // The beginning of time
alert(dateUS(date1)); // Alerts 7 (or whatever day of the month it is for you)
alert(dateUS(date2)); // Alerts 31
相关文章:
- 比较从函数和生成的日期对象
- 如何获得一个只有时间的moment.js日期对象
- 使用moment.js获取时间分区的偏移日期对象
- 对象数组返回自最近日期以来的最高总体值
- JavaScript JSON关联对象键和值都作为日期时间戳
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- 将某个时间格式转换为日期对象
- date对象未在javascript中返回正确的日期值
- 正在使用日期字符串初始化javascript日期对象
- 在CouchDB Map函数中发出日期时-对日期对象调用的内容
- 如何将事件的日期放入fullcalendar中的日期对象中
- 为什么在JavaScript中可以从另一个日期对象中减去日期对象
- 理解日期对象接收参数时的getDay()方法
- JS日期对象setUTCMonth()将月份增加2
- 时间-日期对象JavaScript getUTCMilliseconds
- 如何根据创建日期对对象进行排序,以插入Meteor的高图表
- JavaScript日期接收为像这次旅行一样的对象.日期:“/日期(1426530600000)/”;
- 将带有 AM/PM 的日期字符串转换为 javascript 日期对象
- Javascript排序对象日期
- MVC控制器返回JSON对象日期属性"Now"“帮助”