代码是否正确
<meta charset="utf-8">
<title>变量、作用域</title>
</head>
<body>
<button>1</button>
<button>2</button>
<button>3</button>
<script type="text/javascript">
function add(num,num2){
function isNumber(){
if(isNaN(num)&&isNaN(num2)){
return alert('请传入数字类型的参数')
}else{
document.write(num+num2);
}
}
isNumber();
}
add(1,2)
</script>
</body>
</html>
正在回答 回答被采纳积分+1
同学你好,代码有如下问题:
当计算add("1a",2)时,结果是“1a2”,原因是“isNaN”的判断不对,“&&”代表两个参数都是NaN时,才弹框提示,正确应该是两个参数中,有一个为NaN,就要弹框提示不是数字,修改如下:
修改后,计算add("1",2)结果是“12”,原因是isNaN在判断参数是否是NaN时,会尝试将其转成数字再判断,所以isNaN(字符串形式的1)是false,即代码会执行“document.write(num+num2)”,而字符串和数字,执行+运算时,会进行拼接,所以结果是“12”。建议将参数转成数字再计算,如下:
如果我的回答帮到了你,欢迎采纳,祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星