Cicle周围提示不起作用

时间:2017-12-31 17:15:04

标签: javascript loops

我需要围绕提示制作一篇文章。提示抓取客户输入值的对象并将其推送到 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); 
} 

1 个答案:

答案 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不是很灵活