در این مطلب با ویژگی های جدید معرفی شده در EcmaScript نسخه 6 یا اصطلاحاً ES6 و کاربردهای آن آشنا خواهیم شد.
کلاسها در Es6 معرفی شده اند. یک کلاس یک نوع تابع است با این تفاوت که به جای استفاده از کلمه کلیدی function از کلمه کلیدی class استفاده می کنیم و ویژگی های کلاس در داخل متد constructor مقدار دهی می شوند. برای تعریف کلاس از کلمه کلیدی class استفاده کنید و همیشه متد constructor را اضافه نمایید. متد constructor هر وقت که یک شی از کلاس ساخته می شود فراخوانی می گردد. برای مثال در زیر یک کلاس با نام Car تعریف شده است.
class Car {
constructor(brand) {
this.carname = brand;
}
}
بعد از این که کلاس تعریف شد می توان از آن شی ساخت برای ساخت شی باید طبق مثال زیر عمل کرد.
class Car {
constructor(brand) {
this.carname = brand;
}
}
mycar = new Car("Ford");
کلاس های جاوا اسکریپت قابلیت هایی مانند متد و وراثت هم دارند که در مطالب بعدی توضیح داده می شوند.
امکانی که در ES6 قرار داده شده است این است که توابعی را که تعریف می کنیم می توانند یک مقدار اولیه داشته باشند. که اگر کاربر مقداری برای آن پارامتر در نظر نگرفته بود مقدار پارامتر همان مقدار پیش فرض باشد. برای مثال در کد زیر اگر مقداری برای y در نظر نگیریم مقدار آن به طور پیش فرض 10 خواهد بود.
function myFunction(x, y = 10) {
// y is 10 if not passed or undefined
return x + y;
}
myFunction(5); // will return 15
متد find متدی است که بر روی آرایه ها کار می کند و نحوه کار آن به این صورت است که یک تابع به عنوان ورودی میگیرد و اولین عنصر از آرایه را که در آن تابع مقدار true ایجاد کند را برمی گرداند. برای مثال متد find در کد زیر اولین عدد بزرگتر از 18 که 25 است را برمی گرداند. به نحوه نوشتن کد تابع ورودی دقت کنید.
var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
تابع ورودی find دارای 3 پارامتر ورودی است که خود آیتم و اندیس آن و خود آرایه می باشد.
این متد هم شبیه متد find است و تفاوتی که بین این دو متد وجود دارد این است که findIndex اندیس آرایه عنصری را که در تابع ورودی مقدار true بگیرد را برمی گرداند. برای مثال در کد زیر مقدار ۳ برگردانده می شود.
var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
تعداد آرگومان های تابع ورودی متد در findIndex هم شبیه به همان متد find است.
در ES6 برای اعداد ۳ ویژگی جدید فراهم شده است که در زیر می بینید.
ثابت EPSILON کوچکترین عدد را برمیگرداند و ثابت MIN_SAFE_INTEGER کوچکترین عدد صحیح را برمی گرداند و MAX_SAFE_INTEGER هم بزرگترین عدد صحیح را برمی گرداند. می توانید کد زیر را اجرا کنید و نتیجه هرکدام را در مرورگر خود ببینید
var x = Number.EPSILON;
var x = Number.MIN_SAFE_INTEGER;
var x = Number.MAX_SAFE_INTEGER;
منظور از کلمه safe در اینجا به این معنی است که عدد صحیحی باشد که بتوان آن را به صورت عدد اعشاری دابل نشان داد.
در ES6 دو متد جدید هم به اعداد اضافه شده است و انها عبارتند از:
Number.isInteger()
Number.isSafeInteger()
متد isInteger متدی است که اگر ورودی متد یک عدد صحیح باشد مقدار true و در غیر این صورت مقدار false بر می گرداند. برای مثال به کد زیر دقت کنید:
Number.isInteger(10); // returns true
Number.isInteger(10.5); // returns false
متد isSafeInteger مشخص می کند که عدد وارد شده را می توان در قالب عدد دابل به صورت دقت مضاعف نمایش داد یا خیر برای مثال به کد زیر دقت کنید.
Number.isSafeInteger(10); // returns true
Number.isSafeInteger(12345678901234567890); // returns false
اعداد صحیح safe integer اعدادی هستند که بین منفی 2^53 تا مثبت 2^53 (دو به توان 53)باشند.
در ES6 همچنین ۲ تابع سراسری اضافه شده است به نام های isFinite, isNaN. در تابع isFinite اگر ورودی بینهایت یا تعریف نشده باشد مقدار false و در غیر این صورت مقدار true برگردانده می شود. و تابع isNaN در صورتی که مقدار ورودی تعریف نشده باشد مقدار true برمی گرداند. برای مثال به قطعه کدهای زیر دقت کنید.
isFinite(10/0); // returns false
isFinite(10/1); // returns true
isNaN("Hello"); // returns true
با وجود این که قبلا عمل توان را می توانستیم با استفاده از متد Math.pow انجام دهیم ولی در Es6 عملگری برای توان اضافه شده است. این عملگر ** است برای مثال اگر بخواهیم 5 را به توان 2 برسانیم باید کد زیر را داشته باشیم.
var x = 5;
var z = x ** 2; // result is 25
دقت داشته باشید این که برای توان از Math.pow یا ** استفاده کنیم در نتیجه تفاوتی ندارد.
با وب سایت tosinso همراه باشید.
بنیانگذار توسینسو و برنامه نویس
مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود