بازگشت به دوره

کلمات رزرو شده در جاوا اسکریپت

در بخش قبلی دیدیم که یکی از قوانینی که برای نامگذاری شناسه‌ها باید رعایت شود، عدم استفاده از کلمات رزرو شده (Reserved Words) است. اما کلمات رزرو شده چه کلماتی هستند؟

در هر زبان برنامه‌نویسی تعدادی کلمه‌ی از پیش تعریف شده وجود دارد که هر یک به منظور خاصی در آن زبان به کار برده می‌شوند. مثلاً برای تعریف یک ثابت از کلمه‌ی const و برای تعریف یک تابع از کلمه‌ی function استفاده می‌شود. به این کلمات در هر زبان برنامه نویسی کلمات رزرو شده یا کلمات کلیدی (Keywords) گفته می‌شود.

فهرست تمام کلمات رزرو شده در زبان جاوا اسکریپت (یا به طور دقیق‌تر ECMAScript) به شرح زیر است.

await , break , case , catch , class , const , continue
debugger , default , delete , do , else , enum , export
extends , false , finally , for , function , if , implements
import , in , instanceof , interface , let , new , null
package , private , protected , public , return , static
super , switch , this , throw , true , try , typeof , var
void , while , with , yield

اینها کلماتی هستند که به هیچ وجه به عنوان شناسه قابل استفاده نیستند و برای اهداف خاصی در زبان جاوا اسکریپت در نظر گرفته شده‌اند.

اما کلمات دیگری نیز در جاوا اسکریپت وجود دارند که در عین حال که یک کلمه‌ی رزرو شده نیستند. نباید از آنها به عنوان شناسه استفاده کنیم. یعنی استفاده از این کلمات به عنوان شناسه هیچ خطایی را در برنامه تولید نمی‌کند و برنامه به اجرای خود ادامه می‌دهد. اما ممکن است در شرایط خاص نتایج غیر منتظره و اشتباهی به وجود آورد. این نوع کلمات خود به چند دسته تقسیم می‌شود.


abstract , boolean , byte , char , double , final , float , goto , int
long , native , short , synchronized , throws , volatile , transient

arguments , Array , Date , eval , hasOwnProperty , Infinity
isFinite , isNaN , isPrototypeOf , length , Math , NaN , Number
Object , prototype , String , toString , undefined , valueOf

alert , all , anchor , anchors , area , assign , blur , button , checkbox
clearInterval , clearTimeout , clientInformation , close , closed , confirm
constructor , crypto , decodeURI , decodeURIComponent , defaultStatus , document
element , elements , embed , embeds , encodeURI , encodeURIComponent , escape , event
fileUpload , focus , form , forms , frame , innerHeight , innerWidth , layer
layers , link , location , mimeTypes , navigate , navigator , frames , frameRate
hidden , history , image , images , offscreenBuffering , open , opener , option
outerHeight , outerWidth , packages , pageXOffset , pageYOffset , parent , parseFloat
parseInt , password , pkcs11 , plugin , prompt , propertyIsEnum , radio , reset
screenX , screenY , scroll , secure , select , self , setInterval , setTimeout , status
submit , taint , text , textarea , top , unescape , untaint , window

البته کلمات دسته‌ی آخر از اهمیت کمتری برخوردار هستند (به جز چند مورد خاص مثل window و document). به همین دلیل بعضاً از این کلمات در نامگذاری شناسه‌ها نیز استفاده می‌شود. اما بهتر است که از این کلمات به عنوان شناسه استفاده نشود.

همچنین توجه کنید که نیازی به حفظ کردن این کلمات ندارید، به مرور زمان موارد ضروری در ذهن شما ماندگار خواهند شد. ضمن اینکه اکثر ویرایشگرهای کد امروزی با تغییر دادن رنگ کلمات کلیدی زبان، تشخیص کلمات کلیدی زبان‌های برنامه‌نویسی را بسیار ساده می‌کنند.