JS函数返回undefined
本帖最后由 totolo 于 2020-6-25 14:14 编辑各位大佬,js函数返回undefined是怎么回事?
以下js代码主要实现:
按下查询按钮
如果查询次数为0,则生成一个在规定数值范围内的风压值并显示
否则,计算经过一段时间dt后风压的剩余量并显示
运行结果:
fy_init: 600
time_sub: 871
fy_cx: undefined
---------------------------------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<style>
div
{
width:100px;
height:40px;
}
</style>
<script>
var fy; //风压值
var cx_num = 0; //查询次数
var time; //首次查询的时间
var x; //风压随机值
function fy_cx(kh)
{
if(cx_num == 0)
{
fy = fy_init(kh); //生成对应类型的风压值
time_sub(); //得到第一次查询时的时间
}
else
{
var dt = time_sub();
fy = parseInt(fy - (0.33 * dt)); //计算经过时间dt后,剩余风压量
}
document.getElementById("fy_cx").innerText = "fy_cx:" + fy;
cx_num++;
}
function fy_init(kh)
{
if(kh == "KE")
{
do
{
fy = fy_random();
}
while(fy <= 598 || fy >= 605)
}
else
{
do
{
fy = fy_random();
}
while(fy <= 498 || fy >= 505)
}
document.getElementById("fy_init").innerText = "fy_init:" + fy;
}
function time_sub()
{
if(cx_num == 0)
{
var timea = new Date();
time = timea.getHours() * 60 + timea.getSeconds(); //得到第一次查询时的时间
}
else
{
var nt = new Date();
return ((nt.getHours() * 60 + nt.getSeconds()) - time); //计算据第一次查询的时间间隔dt
}
document.getElementById("time_sub").innerText = "time_sub:" + time;
}
function fy_random()
{
x = parseInt(Math.random() * 100); //生成三位的随机数
if(x < 100)
{
x = x * 10;
}
return x;
}
</script>
</head>
<body>
<input type = "button" value = "click me"onclick = "fy_cx('KE')">
<div id = "fy_init"></div>
<div id = "time_sub"></div>
<div id = "fy_cx"></div>
</body>
</html> 你的fy_cx本来就没有返回值啊 qiuyouzhi 发表于 2020-6-25 14:56
你的fy_cx本来就没有返回值啊
fy_cx()里重新计算了fy的值,最后输出的也是fy的值 totolo 发表于 2020-6-25 21:29
fy_cx()里重新计算了fy的值,最后输出的也是fy的值
看你这种代码写法,你干脆就不用函数就可以了
用了函数以后,没有返回值,没有调用,不懂函数吗???? fy = fy_init(kh); //生成对应类型的风压值
将这一行改为:
fy_init(kh); //生成对应类型的风压值
这个代码,一言难尽啊
将所有全局变量想办法收到函数内部去吧,函数执行后返回一个值,你这里的错误是使用全局变量来存值,函数又不返回值,又使用函数运行后的返回值来改写全局变量的值,唉呀,我自己都晕了 函数不使用return 返回值,返回的默认值是 undefined
totolo 发表于 2020-6-25 21:29
fy_cx()里重新计算了fy的值,最后输出的也是fy的值
输出?函数要返回值,用return返回值
页:
[1]