else里面的代码不删除,只删除else
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>判断数字是否是两位数</title>
<style>
main{
width: 200px;
margin: 20px auto;
}
</style>
</head>
<body>
<main>
<input type="text" style="width: 50px" >
<button>判断位数</button>
</main>
<script>
let oinput = document.getElementsByTagName('input')[0];
let obtn = document.getElementsByTagName('button')[0];
obtn.addEventListener('click',function () {
if(!oinput.value){alert('请输入数字')}
else{
let num = parseInt(oinput.value);
alert('这是'+getDigit(num)+'位数');
}
});
oinput.onkeyup = function ()
{
this.value = this.value.replace(/[^\d]/,"")
};
function getDigit(num) {
if(num ===0) return 0;
let digit = 0;
while(num!==0){
digit++;
num=parseInt(num/10);
}
return digit;
}
</script>
</body>
</html>
只删除else,那么无论if是否满足,都会走其中的代码,当oinput.value无效,无法转换的时候
let num = parseInt(oinput.value);
就会丢出异常
只删除else,那么无论if是否满足
只删除else的话无论满不满足if的条件,if语句里面的内容执行完之后就会执行else里面的语句造成无限循环然后崩溃。