اجرای متن درون یک رشته (String) به عنوان کد اجرایی (کد JavaScript)، با تابع eval ، در JavaScript
تابع
eval
در JavaScript ، این امکان را در اختیار ما قرار می دهد که متن درون یک رشته (String) را به عنوان کد اجرایی (کد JavaScript)، اجرا نماییم. یعنی زبان JavaScript ، آن متن را به صورت دستور JavaScript در نظر گرفته و اجرا می کند.
به عنوان مثال، کد JavaScript زیر را در نظر بگیرید :
در کد بالا، تابع
eval
، عبارت زیر را به عنوان یک دستور JavaScript در نظر گرفته و اجرا می کند :
بنابراین یک متغیر با نام
Kelidestan
تعریف می شود که مقدار 1234 در آن ذخیره شده است.
همین کد را در یک مثال کامل، اجرا می کنیم :
کد کامل صفحه HTML :
که در آن، کدهای JavaScript زیر اجرا می شوند :
تابع
document.write
برای چاپ مقدار متغیر در صفحه به کار رفته است.
نتیجه :
قابلیت اجرای یک متن (رشته - String) به عنوان دستور JavaScript ، باعث می شود که با استفاده از روش های مختلف مربوط به کار با رشته ها (String)، دستورات مورد نظر خود را به شکل آزادانه تری اجرا نماییم.
به مثال زیر توجه کنید :
قصد داریم که با استفاده از یک حلقه
for
و تابع
eval
و تنها چند خط کدنویسی، 100 متغیر را تعریف کنیم که نام آنها تنها در پسوند عددی با یکدیگر تفاوت دارد.
کد کامل صفحه HTML :
که در آن، کدهای JavaScript زیر را نوشته ایم :
ابتدا با استفاده از حلقه
for
و تابع
eval
، رشته هایی (String) را بر اساس متغیر حلقه (یعنی
ii
) می سازیم و با اجرای آن رشته ها (String) به عنوان دستور، 100 متغیر را تعریف می کنیم (با 100 بار اجرا شدن کدهای
حلقه) :
علامت
+
برای اتصال رشته ها (String) به یکدیگر به کار می رود.
در واقع حلقه
for
بالا، کدهای زیر را اجرا خواهد کرد (کد معادل آن) (در حالت عادی و بدون استفاده از تابع
eval
، مجبور می شدیم که 100 خط کد بنویسیم) :
بنابراین متغیرهای
Kelidestan_1
و
Kelidestan_2
و
Kelidestan_3
و ... و
Kelidestan_100
با مقادیر برابر 1 و 2 و 3 و ... و 100 تعریف می شوند.
برای بررسی صحیح تعریف شدن متغیرها، مقدار تعدادی از آنها را به عنوان نمونه، در صفحه چاپ می کنیم (با استفاده از تابع
document.write
) :
چاپ تگ
br
برای این است که مقدار هر متغیر، در یک خط جدید نمایش داده شود.
نتیجه :
خیلی عالی بود ممنون از توضیحات و مثال هاتون
خیلی کامل و مفید بود تشکر از سایت خوبتون