ورود

View Full Version : آموزش: ده ترفند ریز در زبان جاوا اسکریپت



birtemp
دوشنبه 16 مرداد 1391, 10:57 صبح
بسیاری از مرورگرها با زبان جاوا اسکریپت سازگار هستند و به همین خاطر این زبان به یکی از زبانهای پرکاربرد و پرطرفدار در بین برنامه نویسان تحت وب تبدیل شده است. دلیل آن هم سادگی و به سرعت پذیرفته شدن قابلیت های جدید این زبان توسط مرورگرها می باشد.
در ابتدا بسیاری از برنامه نویسان فکر می کردند زبان جاوا اسکریپت (http://www.prolearn-vs.com) فقط یک زبان برای فراهم کردن اسباب بازی تولید شده است، اما ظهور آژاکس در بازار چیزی کاملاً برعکس بوجود آورد و باعث شد قابلیت ها و توابع زبان جاوا اسکریپت بهتر از گذشته برای برنامه نویسان آشکار شود.
در این مقاله قصد داریم برخی از نکات ریز را برای استفاده بهتر برنامه نویسان مبتدی از زبان جاوا اسکریپت بیان کنیم. نکاتی که معرفی خواهیم کرد نمی توانند حتی یک نقطه از قابلیت ها و توانایی های این زبان باشند. ولی یادتان باشد که این مقاله صرفاً برای آشنایی کاربران مبتدی با نکات اولیه این زبان می باشد!

1- اضافه کردن یک عنصر در پایان آرایه
این تکنیک اجازه می دهد تا شما بتوانید توسط خصوصیت length یک عنصر به انتهای یک آرایه اضافه کنید. خصوصیت length به یک شماره بالاتر از موقعیت عنصر در آرایه مراجعه می کند. این روش همانند روش “Push” عمل می کند. در زیر می توانید مثالی از آنرا مشاهده کنید:

var myArray = [];
myArray[myArray.length] = 'New Element';


2- تغییر اندازه طول آرایه
توانایی های خاصیت length تنها در عمل خواندن تمام نمی شود بلکه شما می توانید مقادیری را نیز برای آن تنظیم کنید و اندازه آرایه را افزایش یا کاهش دهید. به عنوان مثال:

var myArray = [1,2,3];
myArray.length // 3
myArray.length = 2; //Delete the last element
myArray.length = 20 // add 18 elements to the array; the elements have the undefined value.

3- تبدیل هر نوع داده ای به Boolean با استفاده از “!!”
این تکنیک به شما اجازه می دهد تا هر نوع داده ای مانند رشته، اعداد و یا اعداد صحیح را با استفاده از “!!” به نوع Boolean تبدیل کنید. به عنوان مثال:

var myString = '23255';
typeof myString; //String

myString = !!myString;
typeof myString //Boolean

4- تبدیل اعداد به رشته
این تکنیک به شما اجازه می دهد تا با اضافه کردن یک رشته خالی در انتهای اعداد آنها را به رشته تبدیل کند. به عنوان مثال:

var mynumber = 234;
typeof mynumber; //Number

mynumber += '';
typeof mynumber; //String


5- نمایش تعداد متغیرهای موجود در یک تابع
این تکنیک تعداد متغیرها را طوری که قابل انتظار است به شما نشان می دهد. به عنوان مثال:

function add_nums(num1, num2){
return num1 + num2;
}
add_nums.length // 2 is the amount of parameters expected by the function add_nums


6- چه تعداد از پارامترها توسط توابع دریافت می شوند؟
این تکنیک به شما نشان می دهد چه تعداد از متغیرها با استفاده از شیء “arguments” توسط توابع دریافت می شود. به عنوان مثال:

function add_nums(){
return arguments.length;
}

add_nums(23,11,32,56,89,89,89,44,6); //this return the number 9


این عمل برای زمانی که شما به بررسی تعدادی از پارامترها برای اعتبار سنجی یا حتی ایجاد یک تابع با پارامترهای نامشخص نیاز دارید، بسیار مفید می باشد.

function sum_three_nums( ){
if(arguments.length!=3) throw new Error('received ' + arguments.length + ' parameters and should work with 3');

}

sum_three_nums(23,43); //Return the error message

function sum_num(){
var total = 0;
for(var i=0;i<arguments .length;i++){
total+=arguments[i];
}
return total;
}

sum_num(2,34,45,56,56);


7- سازماندهی و بهبود توابع با اشیاء به عنوان پارامتر
امروزه استفاده از اشیاء در توسعه وب مدرن بسیار معمول است که در آن از پارامترها به عنوان توابع استفاده می شود. به خاطر سپردن دستور پارامترهای یک تابع همیشه کار دشواری بوده و هست؛ با این حال استفاده از یک شیء به جای به خاطر سپردن دستور پارامترهای یک تابع بسیار مفیدتر است، زیرا به این ترتیب دیگر لازم نیست نگران دستورات پارامترها باشیم. به عنوان مثال:

function insertData(name,lastName,phone,address){
code here;
}

مثال بالا را به صورت زیر نیز می توان نوشت:

function insertData(parameters){
var name = parameters.name;
var lastName = parameters.lastName;
var phone = parameters.phone;
var address = parameters.address;
}

در حال حاضر برای استفاده آسان از تابع، ما می توانیم داده ها را به دو روش ارسال کنیم:

//Example 1
insertData({name:’Mike’, lastName:’Rogers’, phone:’۵۵۵-۵۵۵-۵۵۵۵’,address:’the address’, status:’married’});

//Example 2
var myData = { name:’Mike’,
lastName:’Rogers’,
phone:’۵۵۵-۵۵۵-۵۵۵۵’,
address:’the address’,
status:’married’
};

insertData(myData);


8- توابع داده هستند
توابع داده هایی هستند درست مثل رشته ها یا اعداد که ما می توانیم آنها را به عنوان پارامترهای تابع برای ایجاد برنامه های شگفت انگیز و فرماندهی برنامه های تحت وب (http://www.prolearn-vs.com) مورد استفاده قرار دهیم. به عنوان مثال:

function byId(element, event, f){
Document.getElementById(element).['on'+event] = f; //f is the function that we pass as parameter
}

byId('myBtn','click',function(){alert('Hello World')});

Another example of functions as data:

//Example 1
function msg(m){
Alert(m);
}

//Example 2
var msg = function(m){ alert(m);}


9- گسترش اشیاء بومی
هر چند که تعدادی از انجمن های گفتگوی جاوا اسکریپت روش گسترش اشیاء بومی را توصیه نمی کنند، اما این روش از سوی برخی frameworkها مورد استفاده قرار می گیرد. این روش به شما اجازه می دهد تا برای ایجاد برخی از روش های کمک کننده از APIهای جاوا اسکریپت استفاده کنید. به عنوان مثال:

//We create the method prototype for our arrays
//It only sums numeric elements

Array.prototype.sum = function(){
var len = this.length;
total = 0;
for(var i=0;i<len ;i++){
if(typeof this[i]!= 'number') continue;
total += this[i];
}
return total;
}

var myArray = [1,2,3,'hola'];
myArray.sum();

Array.prototype.max = function(){
return Math.max.apply('',this);

10- Boolean
توجه داشته باشید که مقایسه ها را چک کرده باشید، زیرا این تکنیک (http://www.prolearn-vs.com) وقت شما را در بخش اشکال زدایی جاوا اسکریپت ذخیره می کند.

'' == '۰' // false
0 == '' // true
0 == '0' // true
false == 'false' // false
false == '0' // true
false == undefined // false
false == null // false
null == undefined // true
true == 1 // true
'' == null // false
false == '' // true



منبع : وبسایت برنامه نویسی حرفه ای (http://www.prolearn-vs.com)

spiderman200700
دوشنبه 16 مرداد 1391, 13:26 عصر
اینجا تالار جاواس نه جاوا اسکریپت
امیدوارم بدونید این دو هیچ ربطی به هم ندارن

birtemp
شنبه 28 مرداد 1391, 19:39 عصر
اینجا تالار جاواس نه جاوا اسکریپت
امیدوارم بدونید این دو هیچ ربطی به هم ندارن

spiderman200700 (http://barnamenevis.org/member.php?133001-spiderman200700) میدونم تالار جاواس، ولی آخه تالار جاوا اسکریپت رو پیدا نکردم.

بهزاد علی محمدزاده
شنبه 28 مرداد 1391, 21:46 عصر
تالار: JavaScript و Framework های مبتنی بر آن (http://barnamenevis.org/forumdisplay.php?160-JavaScript-%D9%88-Framework-%D9%87%D8%A7%DB%8C-%D9%85%D8%A8%D8%AA%D9%86%DB%8C-%D8%A8%D8%B1-%D8%A2%D9%86)