سلام
اگر اهل كار با JavaScript هستيد و تازه شروع به يادگرفتن آن كرده ايد،لطفا با ما همراه باشيد چون مي خواهيم نكات ريز و مهمي را كه براي كار با جاوااسكريپت لازم است را با هم مرور كنيم.
1.به جاي == از === استفاده كنيد
جاوااسكريپت دو نوع عملگر متفاوت را براي عمل تساوي ارائه كرده است:=== | !== و == | !=.اگر دو عملگر داراي يك نوع و يك مقدار باشند،آنگاه === مقدار True و !== مقدار False بر مي گردارند.
با اين حال وقتي با == و != كار مي كنيد،ممكن است در استفاده از متغيرهاي چند نوعي دچار مشكل شويد.چون مي خواهند مقادير را مطابقت دهند ولي چون نوع متفاوت است،موفق نمي شوند.
2.Eval = Bad
براي كساني كه ممكن است آشنايي نداشته باشند،به وسيله تابع eval مي توان به كامپايلر جاوااسكريپت دسترسي داشت.در اصل،مي توانيم يك رشته متني را با پاس دادن به اين تابع،اجرا كنيم.
ولي eval نه تنها سرعت عملكرد اسكريپت شما را كاهش مي دهد،بلكه يك خطر امنيتي مهم نيز ايجاد مي كند.زيرا هر دستوري را كه به آن داده شود،با مجوز سيستم اجرا مي كند.بهتر است فراموشش كنيد!
3.از JS Lint استفاده كنيد
JSLint يك خطاياب جاوااسكريپت است كه بوسيله داگلاس كراكفورد(Douglas Crockford) نوشته شده است.مي توانيد به سادگي آن را در اسكريپت خود كپي كنيد و آن كد شما را اسكن كرده و تذكرات و خطاها را گزارش مي دهد.به طور كلي اين ابزار يك كد را مي گيرد و آن را بازبيني مي كند.اگر خطايي پيدا كرد،آن را به همراه توضيحات كامل و محل وقوع خطا گزارش مي دهد.بيشتر ابزاري براي يافتن اشكالاتي كه ممكن است از چشم تان مخفي باشند.پس قبل از انتشار اسكريپت خود،بهتر است يكبار هم با JSLint تستش كنيد
4.اسكريپت ها را در آخر صفحه قرار دهيد
فراموش نكنيد كه اولين هدف سايت ها،افزايش سرعت بارگذاري صفحات است.اگر اسكريپت ها در اول صفحه قرار گيرند،مرورگر تا زماني كه كاملا آنها را لود نكرده باشد،منتظر مي ماند و اين براي كاربران جالب نيست.پس اگر از اسكريپت ها در سايت خود استفاده مي كنيد،بهتر است تمام آنها را به آخرين بخش صفحه يعني قبل از تگ بستن بدنه (<body/>) منتقل كنيد.
<p>And now you know my favorite kinds of corn. </p> <script type="text/javascript" src="path/to/file.js"></script> <script type="text/javascript" src="path/to/anotherFile.js"></script> </body> </html>
5.متغيرها را بيرون از حلقه For تعريف كنيد
مثلا:
بد
for(var i = 0; i < someArray.length; i++) { var container = document.getElementById('container'); container.innerHtml += 'my number: ' + i; console.log(i); }
دقت كنيد كه هر چه قدر بيشتر از DOM استفاده كنيم،كارايي كم مي شود
خوب
var container = document.getElementById('container'); for(var i = 0, len = someArray.length; i < len; i++) { container.innerHtml += 'my number: ' + i; console.log(i); }
6.سريعترين راه براي ايجاد متون
هميشه استفاده از حلقه For براي الحاق متغيرها و ايجاد رشته،مناسب نيست.با روش هاي ديگري مي توان كارايي را بالاتر برد.مثل join
var arr = ['item 1', 'item 2', 'item 3', ...]; var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>';
7.جمع كردن كد
با همنام كردن قسمت هاي امكانپذير از كد خود،مي توانيد تا حد زيادي ار تداخل آن با ساير اسكريپت ها،كتابخانه ها و برنامه ها جلوگيري كنيد.
var name = 'Jeffrey'; var lastName = 'Way'; function doSomething() {...} console.log(name); // Jeffrey -- or window.name
راه حل بهتر:
var DudeNameSpace = { name : 'Jeffrey', lastName : 'Way', doSomething : function() {...} } console.log(DudeNameSpace.name); // Jeffrey
8.هميشه كد خود را توضيح گذاري كنيد!
شايد در ابتدا زياد مهم به نظر نرسد ولي پيشنهاد مي كنم حتما اين كار را انجام دهيد.شايد بعد از ماه ها،دوباره به پروژه سر زديد و بياد آوري كاركرد كدها سخت شده است و يا همكاران تان مي خواهند كد شما را بهبود دهند.پس با وجود توضيحاتي كه در بخش هاي مهم گذاشته ايد،مي توانيد كد خود را قابل استفاده تر كنيد.پس هيچ وقت comment را فراموش نكنيد.
// Cycle through array and echo out each name. for(var i = 0, len = array.length; i < len; i++) { console.log(array[i]); }
9.هيچ رشته اي را به “SetInterval” يا “SetTimeOut” پاس ندهيد
به كد زير نگاه كنيد:
setInterval( "document.getElementById('container').innerHTML += 'My new number: ' + i", 3000 );
اين كد علاوه بر اينكه كارايي برنامه را كاهش مي دهد،بلكه تا حدي شبيه “eval” نيز عمل مي كند.پس هيچ وقت يك رشته را به اين توابع پاس ندهيد.به جايش يك تابع را قرار دهيد:
setInterval(someFunction, 3000);
10.به جاي New Array از [] استفاده كنيد
راه هاي ايجاد آرايه
خوب
var a = new Array(); a[0] = "Joe"; a[1] = 'Plumber';
عالي
var a = ['Joe','Plumber'];
11.متغيرهاي زيادي داريد؟”Var” را فراموش كرده و از كاما استفاده كنيد!
var someItem = 'some string'; var anotherItem = 'another string'; var oneMoreItem = 'one more string';
راه حل بهتر
var someItem = 'some string', anotherItem = 'another string', oneMoreItem = 'one more string';
شايد از روش در سرعت كد شما موثر نباشد ولي نما و تميزي آن را بالا مي برد
12.”Language” را پاك كنيد
<script type="text/javascript" language="javascript"> ... </script>
تا مدتي قبل بايد از اين صفت استفاده مي شد ولي حالا نيازي به آن نيست و مي توانيد پاكش كنيد.
مطلب خوبی بود . همه نکته ها انصافا بدرد بخورد بود …
سلام علی آقا.
خیلی وقت بود دنبال چنین سایتی میگشتم.
خیلی سایت خوب و مفیدی داری.آفرین
سلام حسین جان
خوبین ؟ ممنونم
وبلاگ شما هم خیلی زیبا و مفیده 🙂
موفقیت
سلام
گفته شد:
var a = ['Joe','Plumber'];
اگر بیش از یک مورد نیاز باشد چطور a[0] dh a[1] و… فراخوانی شود..؟؟
بطور مثال:
var a = new Array();
a[0] = "Joe";
a[1] = 'Plumber';
واقعا عالی بود… و نیاز…
مرسی
سلام،
یه مدته دارم با سایتت حال میکنم.
ایول داری 😉
سلام دوست عزيز
ماه هم خوشحاليم كه همراه ما هستيد 🙂
موفقيتـــ
جالب بود به خصوص 5 و 6