<html>
<head>
<meta charset="utf-8" />
<title>js</title>
</head>
<script type="text/javascript">
//功能实现 用户通过文字弹出框 输入数字 获取各个位数偶数之和
var boo = false;
var num = function(){
//设置弹出框 使用 do whele 循环
do{
var numbers = prompt("请输入一个四位数");
if(numbers<10000&&numbers>999){
//获取各个位数 需要强转 在前面转换不管用 这步非常骚,研究了半小时
var on = parseInt(numbers/1000);
var tw = parseInt(numbers/100%10);
var th = parseInt(numbers/10%10);
var fo = parseInt(numbers%10);
//使用三元获取
var yi = on % 2 == 0 ? on : 0 ;
var er = tw % 2 == 0 ? tw : 0 ;
var sa = th % 2 == 0 ? th : 0 ;
var si = fo % 2 == 0 ? fo : 0 ;
//计算和值
var sum = yi + er + sa + si;
alert("各个位数偶数和值是" + sum);
}else{
alert("你输入的不是4位数");
boo = false;
}
}while (boo);
}
</script>
<body >
<input type="button" onclick="num()" value="点我" />
</body>
</html>
唯一一点补充的是,因为JavaScript是弱类型基于对象的语言,全部都用一个 var 来接受值。 获取位数的时候需要转换类型为int 型 parseInt();
如果在前面加的话 只能转成number 获取位数的时候就变成“浮点”类型
var on = parseInt(numbers/1000); 只能这样转换!!!!!