不推荐使用递归,递归使用太多会导致栈溢出
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//第一种方法,用递归的方式
/* var temp;//临时存储
var num1 = prompt('请输入第一个数值:')
demo(num1)
num1 = temp
var num2 = prompt('请输入第二个数值:')
demo(num2)
num2 = temp
function demo(num) {
if (isNaN(num) || num.trim().length === 0) {
num = prompt('请输入符合要求的数字类型的数值')
demo(num)
} else {
num = Number(num)
temp = num
}
}
console.log(num1 + num2); */
//第二种方法,用for循环的方式
/* var num1 = prompt('请输入第一个数值:')
num1 = demo(num1)
var num2 = prompt('请输入第二个数值:')
num2 = demo(num2)
function demo(num) {
for (; isNaN(num) || num.trim().length === 0;) {
num = prompt('请输入符合要求的数字类型的数值')
}
num = Number(num)
return num;
}
console.log(num1 + num2); */
// 第三种方法,用do-while循环的方式
/* function demo() {
do {
var num1 = prompt('请输入符合要求的第一个数值:')
} while (isNaN(num1) || num1.trim().length === 0) {
do {
var num2 = prompt('请输入符合要求的第二个数值:')
} while (isNaN(num2) || num2.trim().length === 0)
}
num1 = Number(num1)
num2 = Number(num2)
return num1 + num2
}
var str = demo()
console.log(str); */
//第四种方法,用while循环的方式
var num1 = prompt('请输入符合要求的第一个数值:')
num1 = demo(num1)
var num2 = prompt('请输入符合要求的第二个数值:')
num2 = demo(num2)
function demo(num) {
while (isNaN(num) || num.trim().length === 0) {
num = prompt('请输入符合要求的数字类型的数值')
}
return Number(num)
}
console.log(num1 + num2);
</script>
</body>
</html>