<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" οnclick="num()" value="点我" /> </body></html>
唯一一点补充的是,因为JavaScript是弱类型基于对象的语言,全部都用一个 var 来接受值。 获取位数的时候需要转换类型为int 型 parseInt();
如果在前面加的话 只能转成number 获取位数的时候就变成“浮点”类型
var on = parseInt(numbers/1000); 只能这样转换!!!!!