تÙÙØ° Ø§ÙØ¯Ø§ÙÙØ© Eval اÙÙ
ضÙ
ÙÙØ© Ù٠اÙÙØºØ© Ø§ÙØ´ÙÙØ±Ø§Øª Ø§ÙØ¨Ø±Ù
Ø¬ÙØ© اÙÙ
ÙÙ
Ø±ÙØ±Ø© ÙÙØ§ ÙØ³ÙØ³ÙØ© ÙØµÙØ© string.
ÙØµÙØ§ØºØªÙØ§ ÙÙØ°Ø§:
let result = eval(code);
ÙÙ Ø«ÙÙØ§:
let code = 'alert("Hello")';
eval(code); // Hello
ÙÙ Ù٠أ٠تÙÙÙ Ø§ÙØ´ÙÙØ±Ø© اÙÙ Ù٠ررة ÙÙØ¯Ø§ÙÙØ© ÙØ¨Ùرة ÙØªØØªÙ٠عÙÙ ÙÙØ§ØµÙ أسطر ÙØªØ¹Ø±ÙÙ Ø¯ÙØ§ÙÙ Ù٠تغÙÙØ±Ø§ØªØ Ù٠ا Ø¥Ù٠ذÙÙ.
ÙÙÙÙ ÙØªÙجة Ø§ÙØ¯Ø§ÙÙØ© Eval ÙÙ ÙØªÙجة آخر عبارة Ù
ÙÙØ°Ø© ÙÙ Ø§ÙØ´ÙÙØ±Ø©.
ÙØ¥ÙÙ٠اÙÙ Ø«Ø§Ù Ø§ÙØªØ§ÙÙ:
let value = eval('1+1');
alert(value); // 2
let value = eval('let i = 0; ++i');
alert(value); // 1
تÙÙÙØ°Ù Ø§ÙØ´ÙÙØ±Ø© ÙÙ Ø§ÙØ¨Ùئة Ø§ÙØØ§ÙÙØ© ÙÙØ¯Ø§ÙÙØ©Ø ÙÙØ°Ø§ ÙÙÙ ÙÙÙØ§ Ø±Ø¤ÙØ© اÙÙ ØªØºÙØ±Ø§Øª Ø§ÙØ®Ø§Ø±Ø¬ÙØ©:
let a = 1;
function f() {
let a = 2;
eval('alert(a)'); // 2
}
f();
Ù٠ا ÙÙ ÙÙÙØ§ تعدÙ٠اÙ٠تغÙÙØ±Ø§Øª Ø§ÙØ®Ø§Ø±Ø¬ÙØ© Ø£ÙØ¶Ùا:
let x = 5;
eval("x = 10");
alert(x); // اÙÙØªÙجة: â«10Ø ØªØ¹Ø¯ÙØª اÙÙÙÙ
Ø© Ø¨ÙØ¬Ø§Ø
Ù٠اÙÙØ¶Ø¹ Ø§ÙØµØ§Ø±Ù
Ø ØªÙ
ÙÙ Ø§ÙØ¯Ø§ÙÙØ© Eval Ø¨ÙØ¦Ø© Ù
تغÙÙØ±Ø§Øª خاصة Ø¨ÙØ§. ÙØ°Ø§ ÙÙÙ ØªØ¸ÙØ± Ø§ÙØ¯ÙاÙÙ ÙØ§ÙÙ
ØªØºÙØ±Ø§ØªØ اÙÙ
Ø¹Ø±ÙØ© -Ø¯Ø§Ø®Ù Ø§ÙØ¯Ø§ÙØ©- ÙÙØ®Ø§Ø±Ø¬ ÙØ¥ÙÙ
ا ستبÙ٠بداخÙÙØ§:
// ØªØ°ÙØ± Ø£Ù Ù٠اÙÙØ¶Ø¹ Ø§ÙØµØ§Ø±Ù
ÙÙØ´ØºÙÙ٠تÙÙØ§Ø¦ÙÙØ§ ÙÙ Ø§ÙØ£Ù
Ø«ÙØ© Ø§ÙØÙÙØ©
eval("let x = 5; function f() {}");
alert(typeof x); // undefined (اÙÙ
تØÙÙ ØºÙØ± Ù
رئ٠ÙÙØ§)
// â«Ø§ÙداÙÙØ© f ØºÙØ± Ù
Ø±Ø¦ÙØ© ÙÙØ§ Ø£ÙØ¶Ùا
بدÙÙ ØªÙØ¹ÙÙ âØ§ÙÙØ¶Ø¹ صارÙ
âØ ÙÙ ÙÙÙÙ ÙÙØ¯Ø§ÙÙØ© Eval Ø¨ÙØ¦Ø© Ù
ØªØºÙØ±Ø§Øª خاصة Ø¨ÙØ§Ø ÙÙØ°ÙÙ Ø³ÙØ±Ù اÙÙ
تغÙÙØ± x ÙØ§ÙداÙÙØ© f Ù
٠خارج Ø§ÙØ¯Ø§ÙÙØ©.
استخدا٠ات Ø§ÙØ¯Ø§ÙÙØ© âEvalâ
ÙÙ Ø·Ø±Ù Ø§ÙØ¨Ø±Ù
جة Ø§ÙØØ¯ÙØ«Ø©Ø ÙØ§Ø¯Ø±Ùا Ù
ا تستخدÙ
Ø§ÙØ¯Ø§ÙÙØ© Eval. ÙØºØ§ÙØ¨ÙØ§ Ù
ا ÙÙØ§Ù عÙÙØ§ Ø£ÙÙØ§ Ø£ØµÙ Ø§ÙØ´Ø±Ùر.
ÙØ§Ùسبب Ø¨Ø³ÙØ·: إذ ÙØ§Ùت ÙØºØ© Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت Ù
ÙØ° زÙ
Ù Ø¨Ø¹ÙØ¯ Ø£Ø¶Ø¹Ù Ø¨ÙØ«Ùر Ù
Ù Ø§ÙØ¢ÙØ ÙÙÙ
ÙÙÙ Ø¨Ø§ÙØ¥Ù
ÙØ§Ù ÙØ¹Ù Ø¥ÙÙ Ø´ÙØ¡ Ø¥ÙØ§ باستخداÙ
Ø§ÙØ¯Ø§ÙÙØ© Eval. ÙÙÙ٠ذÙ٠اÙÙÙØª Ù
ض٠عÙÙÙ Ø¹ÙØ¯ Ù
Ù Ø§ÙØ²Ù
Ù.
ØØ§ÙÙÙØ§Ø ÙØ§ ÙÙØ¬Ø¯ سبب ÙØ¬ÙÙ ÙØ§Ø³ØªØ®Ø¯Ø§Ù ÙØ§. ÙÙÙ Ø£Ù Ø´Ø®ØµÙØ§ ÙØ³ØªØ®Ø¯Ù ÙØ§ Ø§ÙØ¢Ù ÙÙØ¯ÙÙ Ø§ÙØ¥Ù ÙØ§ÙÙØ© ÙØ§Ø³ØªØ¨Ø¯Ø§ÙÙØ§ Ø¨Ø§ÙØ¨ÙÙØ© Ø§ÙØØ¯ÙØ«Ø© ÙÙØºØ© أ٠باÙÙØØ¯Ø§Øª.
ÙØ§ØØ¸ أ٠إÙ
ÙØ§ÙÙØ© ÙØµÙÙ Ø§ÙØ¯Ø§ÙØ© eval ÙÙÙ
ØªØºÙØ±Ø§Øª Ø§ÙØ®Ø§Ø±Ø¬ÙØ© ÙÙØ§ Ø¹ÙØ§Ùب Ø³ÙØ¦Ø©.
إ٠عÙ
ÙÙØ© ØªØµØºÙØ± Ø§ÙØ´ÙÙØ±Ø© (ÙÙ Ø§ÙØ£Ø¯Ùات تستخدÙ
ÙØªØµØºÙر Ø´ÙÙØ±Ø© Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت ÙØ¨Ù ÙØ´Ø±Ùا ÙØ°ÙÙ ÙØªØµØºÙر ØØ¬Ù
ÙØ§ Ø£ÙØ«Ø± Ù
Ù Ø°Ù ÙØ¨Ù) ØªØ¹ÙØ¯ تسÙ
ÙØ© اÙÙ
تغÙÙØ±Ø§Øª اÙÙ
ØÙÙØ© ÙØ£Ø³Ù
اء Ø£ÙØµØ± (Ù
ث٠a Ùb ÙÙ
ا Ø¥Ù٠ذÙÙ) ÙØªØµØºÙر Ø§ÙØ´ÙÙØ±Ø©. ÙØ¹Ø§Ø¯Ø©Ù Ù
ا تÙÙÙ ÙØ°Ù Ø§ÙØ¹ÙÙ
ÙØ© Ø¢Ù
ÙØ©Ø ÙÙÙÙ ÙÙØ³ ÙÙ ØØ§Ù استخداÙ
Ø§ÙØ¯Ø§ÙÙØ© EvalØ Ø¥Ø° ÙÙ
ÙÙÙØ§ اÙÙØµÙÙ ÙÙÙ
تغÙÙØ±Ø§Øª اÙÙ
ØÙÙØ© Ù
Ù Ø§ÙØ´ÙÙØ±Ø© اÙÙ
ÙÙ
ررة ÙÙØ¯Ø§ÙÙØ©. ÙØ°Ø§Ø ÙÙ ØªØµØºÙØ± اÙÙ
ØªØºÙØ±Ø§Øª Ø§ÙØªÙ ÙØØªÙ
٠أ٠تÙÙÙ Ù
Ø±Ø¦ÙØ© Ù
Ù Ø§ÙØ¯Ø§ÙØ© Eval. Ù
Ù
ا سÙÙØ¤Ø«Ø± Ø³ÙØ¨Ùا عÙÙ ÙØ³Ø¨Ø© ضغط Ø§ÙØ´ÙÙØ±Ø©.
ÙÙØ¹Ø¯Ù استخداÙ
اÙÙ
تغÙÙØ±Ø§Øª اÙÙ
ØÙÙØ© ÙÙ Ø§ÙØ´ÙÙØ±Ø© Ø¨Ø¯Ø§Ø®Ù Ø§ÙØ¯Ø§ÙÙØ© Eval Ù
٠اÙÙ
Ù
ارسات Ø§ÙØ¨Ø±Ù
Ø¬ÙØ© Ø§ÙØ³ÙØ¦Ø©Ø ÙØ£ÙÙ ÙØ²Ùد ØµØ¹ÙØ¨Ø© ØµÙØ§ÙØ© Ø§ÙØ´ÙÙØ±Ø©.
ÙÙØ§Ù طرÙÙØªØ§Ù ÙØ¶Ù Ø§Ù Ø§ÙØ£Ù ا٠اÙÙØ§Ù Ù Ø¹ÙØ¯ Ù ØµØ§Ø¯ÙØªÙ Ù Ø«Ù ÙØ°Ù اÙ٠شاÙÙ.
إذا ÙÙ
تستخدÙ
Ø§ÙØ´ÙÙØ±Ø© اÙÙ
Ù
ررة ÙÙØ¯Ø§ÙÙØ© اÙÙ
ØªØºÙØ±Ø§Øª Ø§ÙØ®Ø§Ø±Ø¬ÙØ©Ø ÙÙ
Ù Ø§ÙØ£Ùض٠استدعاء Ø§ÙØ¯Ø§ÙÙØ© ÙÙØ°Ø§: window.eval(...)â
Ø¨ÙØ°Ù Ø§ÙØ·Ø±ÙÙØ© ستÙÙÙØ°Ù Ø§ÙØ´ÙÙØ±Ø© Ù٠اÙÙØ·Ø§Ù Ø§ÙØ¹Ø§Ù :
let x = 1;
{
let x = 5;
window.eval('alert(x)'); // 1 (global variable)
}
Ø¥Ù Ø§ØØªØ§Ø¬Øª Ø§ÙØ´ÙÙØ±Ø© اÙÙ
Ù
ررة ÙÙØ¯Ø§ÙØ© Eval ÙÙ
تغÙÙØ±Ø§Øª Ø®Ø§Ø±Ø¬ÙØ©Ø ÙØºÙÙØ± Eval ÙØªØµØ¨Ø new Function ÙÙ
Ø±ÙØ± اÙÙ
ØªØºÙØ± ÙÙØ³ÙØ·. ÙÙØ°Ø§:
let f = new Function('a', 'alert(a)');
f(5); // 5
شرØÙا ÙÙ Ù ÙØ§Ù٠ساب٠تعÙÙ ÙØ§ ÙÙÙÙØ© Ø§Ø³ØªØ®Ø¯Ø§Ù ØµÙØ§ØºØ© Â«Ø§ÙØ¯Ø§ÙØ© Ø§ÙØ¬Ø¯Ùدة» new Function. إذ Ø¨Ø§Ø³ØªØ®Ø¯Ø§Ù ÙØ°Ù Ø§ÙØµÙاغة ستÙÙØ´Ø£ Ø¯Ø§ÙØ© Ø¬Ø¯ÙØ¯Ø© Ù Ù Ø§ÙØ³ÙØ³ÙØ© (String)Ø Ù٠اÙÙØ·Ø§Ù Ø§ÙØ¹Ø§Ù . ÙØ°Ø§ Ù٠تت٠ÙÙ Ù Ù Ø±Ø¤ÙØ© اÙÙ ØªØºÙØ±Ø§Øª اÙÙ ØÙÙØ©. ÙÙÙ٠٠٠اÙÙØ§Ø¶Ø Ø£Ù ØªÙ Ø±ÙØ±Ùا اÙÙ ØªØºÙØ±Ø§Øª ØµØ±Ø§ØØ© ÙÙØ³Ø·Ø§Ø¡ Ø³ÙØÙ٠اÙÙ Ø´ÙÙØ©Ø Ù٠ا رأÙÙØ§ Ù٠اÙÙ Ø«Ø§Ù Ø£Ø¹ÙØ§Ù.
Ø®ÙØ§ØµØ©
سÙÙØ´ØºÙ٠استدعاء Ø§ÙØ¯Ø§ÙÙØ© eval(code)â Ø§ÙØ´ÙÙØ±Ø© Ø§ÙØ¨Ø±Ù
Ø¬ÙØ© اÙÙ
ÙÙ
Ø±ÙØ±Ø© ÙÙØ¹Ùد ÙØªÙجة Ø§ÙØ¹Ø¨Ø§Ø±Ø© Ø§ÙØ£Ø®Ùرة.
- ÙØ§Ø¯Ø±Ùا ٠ا ØªØ³ØªØ®Ø¯Ù ÙØ°Ù Ø§ÙØ¯Ø§ÙÙØ© ÙÙ Ø§ÙØ¥ØµØ¯Ø§Ø±Ø§Øª Ø§ÙØØ¯ÙØ«Ø© ÙÙØºØ©Ø إذ ÙØ§ ØªÙØ¬Ø¯ ØØ§Ø¬Ø© Ù Ø§Ø³ÙØ© ÙÙØ§.
- ÙÙ
ÙÙÙØ§ اÙÙØµÙ٠دائÙ
ÙØ§ ÙÙÙ
تغÙÙØ±Ø§Øª Ø§ÙØ®Ø§Ø±Ø¬ÙØ© ÙÙ Ø§ÙØ¯Ø§ÙÙØ©
eval. ÙÙÙÙ ÙØ¹Ø¯Ù ذÙ٠٠٠اÙ٠٠ارسات Ø§ÙØ³Ùئة. - بدÙÙØ§ Ù
٠ذÙÙ ÙÙ
ÙÙÙØ§ استخداÙ
Ø§ÙØ¯Ø§ÙØ©
evalÙ٠اÙÙØ·Ø§Ù Ø§ÙØ¹Ø§Ù Ø ÙÙØ°Ø§window.eval(code)â. - Ø£ÙØ إذا ÙØ§Ùت Ø§ÙØ´ÙÙØ±Ø© Ø§ÙØ®Ø§ØµØ© Ø¨Ù ØªØØªØ§Ø¬ ÙØ¨Ø¹Ø¶ Ø§ÙØ¨ÙØ§ÙØ§Øª Ù
٠اÙÙØ·Ø§Ù Ø§ÙØ®Ø§Ø±Ø¬ÙØ ÙØ§Ø³ØªØ®Ø¯Ù
ØµÙØ§ØºØ©
Ø§ÙØ¯Ø§ÙÙØ© Ø§ÙØ¬Ø¯ÙدةÙÙ Ø±ÙØ± ÙÙØ§ اÙÙ ØªØºÙØ±Ø§Øª ÙÙØ³Ø·Ø§Ø¡.
Ø§ÙØªÙ ارÙÙ
Ø¢ÙØ© ØØ§Ø³Ø¨Ø© Ø¨Ø§Ø³ØªØ®Ø¯Ø§Ù Ø§ÙØ¯Ø§ÙØ© Eval
Ø§ÙØ£ÙÙ ÙØ©: 4
Ø£ÙØ´Ø¦ Ø¢ÙØ© ØØ§Ø³Ø¨Ø© ØªØ·Ø§ÙØ¨ Ø¨ØªØ¹Ø¨ÙØ± Ø±ÙØ§Ø¶Ù ÙØªÙØ¹ÙØ¯ ÙØªÙجتÙ.
ÙØ§ داع٠ÙÙØªØÙÙ Ù Ù ØµØØ© Ø§ÙØªØ¹Ø¨Ùر ÙÙ ÙØ°Ø§ Ø§ÙØªÙ رÙÙ. ÙÙØ· ÙÙÙÙ Ø§ÙØªØ¹Ø¨Ùر ÙØ£Ø¹Ø¯ ÙØªÙجتÙ.
ÙØ±Ø¤ÙØ© اÙÙ Ø«Ø§Ù Ø§ÙØÙ
Ø§ÙØÙ
ÙÙØ³ØªØ®Ø¯Ù
Ø§ÙØ¯Ø§ÙØ© eval ÙØØ³Ø§Ø¨ Ø§ÙØªØ¹Ø¨Ùر Ø§ÙØ±ÙاضÙ:
let expr = prompt("Type an arithmetic expression?", '2*3+2');
alert( eval(expr) );
ÙØ³ØªØ·Ùع اÙÙ Ø³ØªØ®Ø¯Ù Ø£ÙØ¶Ùا Ø¥Ø¯Ø®Ø§Ù Ø£Ù ÙØµ Ø£Ù Ø´ÙÙØ±Ø©.
ÙØ¬Ø¹Ù Ø§ÙØ´ÙÙØ±Ø© Ø¢Ù
ÙØ©Ø ÙØØµØ±ÙØ§ ÙÙØ¹Ù
ÙÙØ§Øª Ø§ÙØ±ÙØ§Ø¶ÙØ© ÙØØ³Ø¨Ø Ø³ÙØªØÙÙ Ù
Ù expr باستخداÙ
Ø§ÙØªØ¹Ø§Ø¨Ùر اÙÙÙ
Ø·ÙØ©Ø ÙÙÙ ÙØ§ ØªØØªÙÙ Ø¥ÙØ§ عÙÙ Ø§ÙØ£Ø±ÙاÙ
ÙØ§ÙÙ
عاÙ
ÙØ§Øª Ø±ÙØ§Ø¶ÙØ©.
ترج٠ة -ÙØ¨ØªØµØ±Ù- ÙÙÙØµÙ Eval: run a code string Ù Ù ÙØªØ§Ø¨ The JavaScript language
Ø§ÙØªØ¹ÙÙÙØ§Øª
<code>Ø ÙÙÙÙØ«Ùر Ù Ù Ø§ÙØ³Ø·Ùر استخدÙ<pre>Ø ÙÙØ£Ùثر Ù Ù 10 Ø³Ø·ÙØ± استخد٠(plnkr, JSBin, codepenâ¦)