در سال 2019 بعضا از خصوصیت های تازه به جاوا اسکریپت اضافه گردد. طراحی اپلیکیشن در مشهد درین مقاله خصوصیت های تازه جاوا اسکریپت در سال 2019 را تحقیق میکنیم.
در یکسری سال پیشین جاوا اسکریپت با افزودن خصوصیت های تازه و فوق العاده توسعه و گسترش بسیار متعددی کرده و تبدیل به یک گویش تکامل یافته گردیده است. در شرایطی که شما نیز جزء آن مجموعه از عده ای میباشید که عشق مندید که درباره ورژن نو لهجه نرمافزار نویسی جاوا اسکریپت اطلاعاتی را بدست بیاورید، این مقاله میتواند برای شما اثرگذار باشد. پیش از آن که بخواهیم درباره واپسین خصوصیت های گویش اپ نویسی جاوا اسکریپت حرف کنیم عالی میباشد بدانیم که ایده های تازه به چه شکل تبدیل به بخشی از این لهجه نرمافزار نویسی میگردند.
مراحل خصوصیت های تازه لهجه اپ نویسی جاوا اسکریپت
به طور خلاصه گزینش کننده لهجه که جاوا اسکریپت را ایفا می نماید ECMAScript نامیده میشود. تیم در بین المللی Ecma که تغییراتی را در باب ویژگی ها گویش آیتم تحقیق قرار میدهد و آنها را ثبت می نماید کمیته فنی 39 یا این که TC39 میباشد. تغییراتی که در ویژگی ها این گویش بوسیله ECMAScript به وجود میآید از روش یک فرآیند استاندارد اجرا میگردد که مشتمل بر پروسه پایین میباشد:
مرحله 0: نظرات
مرحله 1: پیشنهادات قانونی
مرحله 2: پیش نویس
مرحله 3: نامزدها و آیتم های تعیین گردیده
مرحله 4: پذیرش گردیده ها
تا وقتیکه یک خصوصیت تازه گویش به مرحله 4 رسد هیچ تضمینی نیست که تبدیل به یکی ویژگی ها قانونی ECMAScript گردد. با این درحال حاضر موتورهای جاوا اسکریپت مانند V8 (که بوسیله مرورگر کروم و NodeJs آیتم به کارگیری قرار میگیرد) و SpiderMonkey مرورگر فایرفاکس این پیکربندی را طراحی می نمایند تا برنامه نویس ها از آنها به کار گیری نمایند و برخورد آنهارا گزینه تست و غلط قرار میدهند.
کاندیداهای رایج ES2019
در طول نوشته شدن این نوشته ی علمی پیشنهادات جدیدی در TC39 در مرحله 4 نیست البته با این حالا برخی از نامزدها در مرحله 3 قرار داراهستند. نکته ای که می بایست قطعا به آن اعتنا ویژه ای داشته باشید این میباشد که از آن جایی کهاین نامزدها در مرحله 3 قرار داراهستند ممکن میباشد کلیه این پیشنهادات مقبول واقع نشوند. در واقع بخش اعظمی از این پیشنهادات برای سالیان طولانی گزینه اعتنا قرار گرفته اند اما طراحی آنها ممکن میباشد وقتگیر بوده و همین سال نتواند وارد مرحله 4 گردد.
تغییرات در کلاس های جاوا اسکریپت
دراین جا قصد داریم بعضی از تغییراتی که ممکن میباشد در کلاس های این گویش اپ نویسی صورت بپذیرد را برای شما ذکر کنیم که به عنوان مثال این تغییرات می شود به مواقعی مانند فیلدهای تعریفوتمجید کردن، متدهای پرایویت و متدهای استاتیک اشاره نمود. در این مکان مثال ای تغییراتی که ممکن میباشد فیس دهد را برای شما ذکر خوا هیم کرد.
class Truck extends Automobile {
model = "Heavy Duty"; // public field declaration
#numberOfSeats = 5; // private field declaration
#isCrewCab = true;
static #name = "Truck"; // static private field declaration
// static method
static formattedName() {
// Notice that the Truck class name is used
// to access the static field instead of "this"
return `This vehicle is a ${ Truck.#name }.`;
}
constructor( model, seats = 2 ) {
super();
this.seats = seats;
}
// Private method
#getBodyType() {
return this.#isCrewCab ? "Crew Cab" : "Standard Cab";
}
bodyType() {
return `${ this.#numberOfSeats }-passenger ${ this.model } ${ this.#getBodyType() }`;
}
get seats() { return this.#numberOfSeats; }
set seats( value ) {
if ( value >= 1 && value < 7 ) {
this.#numberOfSeats = value;
this.#isCrewCab = value > 3;
}
}
}
شخصا طریق به کارگیری از # برای ممبرهای فردی را دوست ندارم.
متدهای trimStart() و trimEnd در فن ها
نوع داده ای حرفه دارنده یک روال trim() میباشد که اسپیس ها را از آغاز و انتهای یک حرفه حذف می نماید، یک مشی سفارش گردیده در جاوا اسکریپت این میباشد که از متدهای trimStart() و trimEnd استعمال کنیم تا به طور از روی اختیار از آغاز و گزینش حرفه اسپیس ها را حذف کنیم.
const one = " hello and let ";
const two = "us begin. ";
console.log( one.trimStart() + two.trimEnd() ) // "hello and let us begin."
چیزهای بسیار جالبی درباره این خصوصیت لهجه اپلیکیشن نویسی جاوا اسکریپت وجود داراست که تا قبل از این بعضا از آنان بر روی موتورهای این لهجه اعمال شدهاست. این خصوصیت یکی مواقعی میباشد که سبب ساز میگردد تا مرورگرها رو به جلو جنبش نمایند.
به کارگیری از اعداد گرانقدر به امداد BigInt
ممکن میباشد اکثری از ما اعداد گرانقدر را مشاهده کرده باشیم که برای اعداد بلندمرتبه خیس از int و double آیتم به کارگیری قرار میگیرند، یک BigInt را می اقتدار با به کار گیری از طریق های مختلفی تمجید کرد.
// for reference
const theBiggestIntegerToday = Number.MAX_SAFE_INTEGER; // 9007199254740991
// use the \'n\' syntax to declare a BigInt
const ABiggerInteger = 9100000000000001n;
// use the BigInt() constructor
const EvenBigger = BigInt( 9100000000000002 ); // 9100000000000002n
// use the BigInt() constructor with a string
const SuchBigWow = BigInt( "9100000000000003" ); // 9100000000000003n
آرایه های یک آینده با استعمال از flat() و flatMap
درصورتی که شما اپلیکیشن نویسی فانکشنال را در لهجه نرم افزار نویسی جاوا اسکریپت تحقیق کرده باشید ممکن میباشد با تفاوت flat() و flatMap() آشنا باشید، flat() برای ساخت یک آرایه از مقادیر که بعضا از این مقادیر ممکن میباشد دارنده تعدادی آرایه باشند و یا این که یک آرایه یک آجل را بازگردانند آیتم به کارگیری قرار میگیرد.
const nestedArraysOhMy = [ "a", ["b", "c"], ["d", ["e", "f"]]];
// .flat() takes an optional depth argument
const ahhThatsBetter = nestedArraysOhMy.flat( 2 );
console.log( ahhThatsBetter ); // [ "a", "b", "c", "d", "e", "f" ]
flatMap() مشابهت متعددی به map() دارااست، ولی سیاق کال بک آن میتواند یک آرایه را بازگرداند که فیض ای که رجوع داده گردیدهاست قادر است یک آرایه یک آینده باشد که آرایه های تو در توی دیگری را نیز در خویش داراست.
const scattered = [ "my favorite", "hamburger", "is a", "chicken sandwich" ];
// regular map() results in nested arrays
const huh = scattered.map( chunk => chunk.split( " " ) );
console.log( huh ); // [ [ "my", "favorite" ], [ "hamburger" ], [ "is", "a" ], [ "chicken", "sandwich" ] ]
// flatMap() concatenates the returned arrays together
const better = scattered.flatMap( chunk => chunk.split( " " ) );
console.log( better ); // [ "my", "favorite", "hamburger", "is", "a", "chicken", "sandwich" ]
نامزدهای توصیه گردیده بیشتر برای ES2019
دراین جا لیستی از کاندیداهای مازاد را مشاهده میکنید که در مرحله 3 قرار داراهستند که ما آنها را اسم میبریم:
شی جهانی استاندارد this
Import() داینامیک
خصوصیت Legacy RegExp
Import.meta
فن matchAll()
استعمال مطلوب خیس از JSON.stringify
چه هنگامی در انتظار نشر ES2019 باشیم؟
در تعدادی سال قبلی TC39 به طور مداوم ورژن های نو مشخصه های لهجه ECMA-262 را در ماه ژوئن منتشر کرد. به احتمال زیاد این ویژگی ها ES2019 نیز در ماه ژوئن این سال منتشر گردد.
خصوصیت های Es2019 را همین امروز آزمون نمایید!
برخی از خصوصیت های پیشنهادی گویش اکنون در موتور لهجه جاوا اسکریپت قابل انجام میباشد، این خصوصیت های تازه گه گاه به طور پیش فرض غیر فعال میشوند ولی میتوانند با تنظیمات نیز فعال شوند.
واپسین نسخه از NodeJs را آزمون نمائید!
Node.Js از موتور جاوا اسکریپت v8 استعمال می نماید، بعضی از کاندیداهای ویژگی ها لهجه را میتوانید در واپسین ورژن از NodeJs به کارگیری فرمائید به این دلیلکه NodeJs نیز از به عبارتی موتور V8 استعمال کرده و آن را جانبداری می نماید. میتوانید بقیه خصوصیت های لهجه جاوا اسکریپت را نیز با به کارگیری از دستورها خط امر فعال کرده و از آنها به کارگیری نمائید.
در سال 2019 بعضا از خصوصیت های تازه به جاوا اسکریپت اضافه گردد. طراحی اپلیکیشن در مشهد درین مقاله خصوصیت های تازه جاوا اسکریپت در سال 2019 را تحقیق میکنیم.
در یکسری سال پیشین جاوا اسکریپت با افزودن خصوصیت های تازه و فوق العاده توسعه و گسترش بسیار متعددی کرده و تبدیل به یک گویش تکامل یافته گردیده است. در شرایطی که شما نیز جزء آن مجموعه از عده ای میباشید که عشق مندید که درباره ورژن نو لهجه نرمافزار نویسی جاوا اسکریپت اطلاعاتی را بدست بیاورید، این مقاله میتواند برای شما اثرگذار باشد. پیش از آن که بخواهیم درباره واپسین خصوصیت های گویش اپ نویسی جاوا اسکریپت حرف کنیم عالی میباشد بدانیم که ایده های تازه به چه شکل تبدیل به بخشی از این لهجه نرمافزار نویسی میگردند.
مراحل خصوصیت های تازه لهجه اپ نویسی جاوا اسکریپت
به طور خلاصه گزینش کننده لهجه که جاوا اسکریپت را ایفا می نماید ECMAScript نامیده میشود. تیم در بین المللی Ecma که تغییراتی را در باب ویژگی ها گویش آیتم تحقیق قرار میدهد و آنها را ثبت می نماید کمیته فنی 39 یا این که TC39 میباشد. تغییراتی که در ویژگی ها این گویش بوسیله ECMAScript به وجود میآید از روش یک فرآیند استاندارد اجرا میگردد که مشتمل بر پروسه پایین میباشد:
مرحله 0: نظرات
مرحله 1: پیشنهادات قانونی
مرحله 2: پیش نویس
مرحله 3: نامزدها و آیتم های تعیین گردیده
مرحله 4: پذیرش گردیده ها
تا وقتیکه یک خصوصیت تازه گویش به مرحله 4 رسد هیچ تضمینی نیست که تبدیل به یکی ویژگی ها قانونی ECMAScript گردد. با این درحال حاضر موتورهای جاوا اسکریپت مانند V8 (که بوسیله مرورگر کروم و NodeJs آیتم به کارگیری قرار میگیرد) و SpiderMonkey مرورگر فایرفاکس این پیکربندی را طراحی می نمایند تا برنامه نویس ها از آنها به کار گیری نمایند و برخورد آنهارا گزینه تست و غلط قرار میدهند.
کاندیداهای رایج ES2019
در طول نوشته شدن این نوشته ی علمی پیشنهادات جدیدی در TC39 در مرحله 4 نیست البته با این حالا برخی از نامزدها در مرحله 3 قرار داراهستند. نکته ای که می بایست قطعا به آن اعتنا ویژه ای داشته باشید این میباشد که از آن جایی کهاین نامزدها در مرحله 3 قرار داراهستند ممکن میباشد کلیه این پیشنهادات مقبول واقع نشوند. در واقع بخش اعظمی از این پیشنهادات برای سالیان طولانی گزینه اعتنا قرار گرفته اند اما طراحی آنها ممکن میباشد وقتگیر بوده و همین سال نتواند وارد مرحله 4 گردد.
تغییرات در کلاس های جاوا اسکریپت
دراین جا قصد داریم بعضی از تغییراتی که ممکن میباشد در کلاس های این گویش اپ نویسی صورت بپذیرد را برای شما ذکر کنیم که به عنوان مثال این تغییرات می شود به مواقعی مانند فیلدهای تعریفوتمجید کردن، متدهای پرایویت و متدهای استاتیک اشاره نمود. در این مکان مثال ای تغییراتی که ممکن میباشد فیس دهد را برای شما ذکر خوا هیم کرد.
class Truck extends Automobile {
model = "Heavy Duty"; // public field declaration
#numberOfSeats = 5; // private field declaration
#isCrewCab = true;
static #name = "Truck"; // static private field declaration
// static method
static formattedName() {
// Notice that the Truck class name is used
// to access the static field instead of "this"
return `This vehicle is a ${ Truck.#name }.`;
}
constructor( model, seats = 2 ) {
super();
this.seats = seats;
}
// Private method
#getBodyType() {
return this.#isCrewCab ? "Crew Cab" : "Standard Cab";
}
bodyType() {
return `${ this.#numberOfSeats }-passenger ${ this.model } ${ this.#getBodyType() }`;
}
get seats() { return this.#numberOfSeats; }
set seats( value ) {
if ( value >= 1 && value < 7 ) {
this.#numberOfSeats = value;
this.#isCrewCab = value > 3;
}
}
}
شخصا طریق به کارگیری از # برای ممبرهای فردی را دوست ندارم.
متدهای trimStart() و trimEnd در فن ها
نوع داده ای حرفه دارنده یک روال trim() میباشد که اسپیس ها را از آغاز و انتهای یک حرفه حذف می نماید، یک مشی سفارش گردیده در جاوا اسکریپت این میباشد که از متدهای trimStart() و trimEnd استعمال کنیم تا به طور از روی اختیار از آغاز و گزینش حرفه اسپیس ها را حذف کنیم.
const one = " hello and let ";
const two = "us begin. ";
console.log( one.trimStart() + two.trimEnd() ) // "hello and let us begin."
چیزهای بسیار جالبی درباره این خصوصیت لهجه اپلیکیشن نویسی جاوا اسکریپت وجود داراست که تا قبل از این بعضا از آنان بر روی موتورهای این لهجه اعمال شدهاست. این خصوصیت یکی مواقعی میباشد که سبب ساز میگردد تا مرورگرها رو به جلو جنبش نمایند.
به کارگیری از اعداد گرانقدر به امداد BigInt
ممکن میباشد اکثری از ما اعداد گرانقدر را مشاهده کرده باشیم که برای اعداد بلندمرتبه خیس از int و double آیتم به کارگیری قرار میگیرند، یک BigInt را می اقتدار با به کار گیری از طریق های مختلفی تمجید کرد.
// for reference
const theBiggestIntegerToday = Number.MAX_SAFE_INTEGER; // 9007199254740991
// use the \'n\' syntax to declare a BigInt
const ABiggerInteger = 9100000000000001n;
// use the BigInt() constructor
const EvenBigger = BigInt( 9100000000000002 ); // 9100000000000002n
// use the BigInt() constructor with a string
const SuchBigWow = BigInt( "9100000000000003" ); // 9100000000000003n
آرایه های یک آینده با استعمال از flat() و flatMap
درصورتی که شما اپلیکیشن نویسی فانکشنال را در لهجه نرم افزار نویسی جاوا اسکریپت تحقیق کرده باشید ممکن میباشد با تفاوت flat() و flatMap() آشنا باشید، flat() برای ساخت یک آرایه از مقادیر که بعضا از این مقادیر ممکن میباشد دارنده تعدادی آرایه باشند و یا این که یک آرایه یک آجل را بازگردانند آیتم به کارگیری قرار میگیرد.
const nestedArraysOhMy = [ "a", ["b", "c"], ["d", ["e", "f"]]];
// .flat() takes an optional depth argument
const ahhThatsBetter = nestedArraysOhMy.flat( 2 );
console.log( ahhThatsBetter ); // [ "a", "b", "c", "d", "e", "f" ]
flatMap() مشابهت متعددی به map() دارااست، ولی سیاق کال بک آن میتواند یک آرایه را بازگرداند که فیض ای که رجوع داده گردیدهاست قادر است یک آرایه یک آینده باشد که آرایه های تو در توی دیگری را نیز در خویش داراست.
const scattered = [ "my favorite", "hamburger", "is a", "chicken sandwich" ];
// regular map() results in nested arrays
const huh = scattered.map( chunk => chunk.split( " " ) );
console.log( huh ); // [ [ "my", "favorite" ], [ "hamburger" ], [ "is", "a" ], [ "chicken", "sandwich" ] ]
// flatMap() concatenates the returned arrays together
const better = scattered.flatMap( chunk => chunk.split( " " ) );
console.log( better ); // [ "my", "favorite", "hamburger", "is", "a", "chicken", "sandwich" ]
نامزدهای توصیه گردیده بیشتر برای ES2019
دراین جا لیستی از کاندیداهای مازاد را مشاهده میکنید که در مرحله 3 قرار داراهستند که ما آنها را اسم میبریم:
شی جهانی استاندارد this
Import() داینامیک
خصوصیت Legacy RegExp
Import.meta
فن matchAll()
استعمال مطلوب خیس از JSON.stringify
چه هنگامی در انتظار نشر ES2019 باشیم؟
در تعدادی سال قبلی TC39 به طور مداوم ورژن های نو مشخصه های لهجه ECMA-262 را در ماه ژوئن منتشر کرد. به احتمال زیاد این ویژگی ها ES2019 نیز در ماه ژوئن این سال منتشر گردد.
خصوصیت های Es2019 را همین امروز آزمون نمایید!
برخی از خصوصیت های پیشنهادی گویش اکنون در موتور لهجه جاوا اسکریپت قابل انجام میباشد، این خصوصیت های تازه گه گاه به طور پیش فرض غیر فعال میشوند ولی میتوانند با تنظیمات نیز فعال شوند.
واپسین نسخه از NodeJs را آزمون نمائید!
Node.Js از موتور جاوا اسکریپت v8 استعمال می نماید، بعضی از کاندیداهای ویژگی ها لهجه را میتوانید در واپسین ورژن از NodeJs به کارگیری فرمائید به این دلیلکه NodeJs نیز از به عبارتی موتور V8 استعمال کرده و آن را جانبداری می نماید. میتوانید بقیه خصوصیت های لهجه جاوا اسکریپت را نیز با به کارگیری از دستورها خط امر فعال کرده و از آنها به کارگیری نمائید.

تفاوت بین وب سایت و اپلیکیشن