Eval-калÑкÑлÑÑоÑ
СоздайÑе калÑкÑлÑÑоÑ, коÑоÑÑй запÑаÑÐ¸Ð²Ð°ÐµÑ Ð²Ð²Ð¾Ð´ какого-нибÑÐ´Ñ Ð°ÑиÑмеÑиÑеÑкого вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸ возвÑаÑÐ°ÐµÑ ÑезÑлÑÑÐ°Ñ ÐµÐ³Ð¾ вÑÑиÑлениÑ.
Ð ÑÑой задаÑе Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи пÑовеÑÑÑÑ Ð¿Ð¾Ð»ÑÑенное вÑÑажение на коÑÑекÑноÑÑÑ, пÑоÑÑо вÑÑиÑлиÑÑ Ð¸ веÑнÑÑÑ ÑезÑлÑÑаÑ.
ÐавайÑе бÑдем иÑполÑзоваÑÑ eval Ð´Ð»Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ Ð°ÑиÑмеÑиÑеÑкиÑ
вÑÑажений:
let expr = prompt("ÐведиÑе аÑиÑмеÑиÑеÑкое вÑÑажение:", '2*3+2');
alert( eval(expr) );
ÐолÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²Ð²ÐµÑÑи лÑбой ÑекÑÑ Ð¸Ð»Ð¸ код.
Ð ÑелÑÑ
безопаÑноÑÑи огÑаниÑимÑÑ ÑолÑко аÑиÑмеÑиÑеÑкими опеÑаÑиÑми, пÑовеÑÑÑ Ð¿ÐµÑеданное expr Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑегÑлÑÑного вÑÑажениÑ, ÑÑÐ¾Ð±Ñ ÑдоÑÑовеÑиÑÑÑÑ, ÑÑо в нÑм ÑодеÑжаÑÑÑ ÑолÑко ÑиÑÑÑ Ð¸ ÑооÑвеÑÑÑвÑÑÑие опеÑаÑоÑÑ.