var s= new Date().getHours(); // 20
var m= new Date().getMinutes(); // 38
document.write(s,m); // returns 2038
var time = s,m;
document.write(time); // returns only 20
var time = s+m;
document.write(time); // returns 58
如何使用s和m变量声明一个返回2038的时间变量?
答案 0 :(得分:1)
将一个投射到一个字符串。
var time = ''+s+m;
document.write(time);
答案 1 :(得分:1)
你必须先确保js知道它的字符串。
var time = "" + s + m;
答案 2 :(得分:0)
更长的答案是JavaScript在看到这样的代码时会应用一些规则。
在这种情况下,document.write(s,m)
只输出每个值:
var s= new Date().getHours(); // 20
var m= new Date().getMinutes(); // 38
document.write(s,m); // returns 2038
以下是声明两个变量(用逗号分隔),一个名为time
,一个名为m
,变量s
中包含的值分配给{{1 }}。使用JavaScript范围规则,您可以声明例如您可以在函数中随意使用time
,它始终引用相同的变量var m
:
m
JavaScript使用var time = s,m;
document.write(time); // returns only 20
进行添加和连接,并尝试强制变量以匹配第一个变量的类型,以决定是执行添加还是连接。在这种情况下,+
是一个数字,因此它会尝试对这两个值执行加法:
s
正确的JavaScript习惯用法是在表达式的开头放置一个空字符串,JavaScript会尝试将后续变量强制转换为该类型:
var time = s+m;
document.write(time); // returns 58