我需要围绕提示制作一篇文章。提示抓取客户输入值的对象并将其推送到 eval 函数以产生结果(使用数学运算符将整个字符串转换为数字('+','*'等等)) 。
圈子的约会 - 是检查 eval 功能的结果,如果是eval(a)!= digit - >每当用户输入提示非数字值('a',','等等)时,重复提示
代码的另一部分仅用于捕获错误。
do {
var a = prompt('your number', '10-2*4');
} while (eval(a) != 'number');
try {
console.log( eval(a) ); //must display 2
} catch (e) {
console.log('Error: ', e);
}
答案 0 :(得分:1)
您对eval(s) != 'number'
的测试应该类似于typeof eval(+s) !='number'
你可以使它成为一个递归函数:
function doPrompt(){
try {
// if this line throws error will go to catch
var res = eval(prompt('your number', '10-2*4'));
// do it again if we don't have a number, or return number
return typeof +res ==='number' ? +res : doPrompt()
}catch(e){
return doPrompt();
}
};
var res = doPrompt();
console.log(res)

使用<input>
可以更清洁,这样可以更好地向用户显示错误。使用prompt
不是很灵活