جاوا اسکریپت نسخه جدید ES6 – رشته های به راحتی اسپاگتی

جاوا اسکریپت نسخه جدید ES6 – رشته های به راحتی اسپاگتی

سلام خوبید؟ ببخشید بازم دیر شد و نشد که زود تر بشه همون جوری که توی مطلب قبلی گفتم توی این مطلب میخواییم با متد های جدید String ها  و امکانات جدید برای String و… صحبت کنیم

حل مشکلات Unicode و …:

در ES6 سعی شده که مشکلات مربوط به زبان های شرقی و خاورمیانه تا حد زیادی حل بشه مثلا وقتی length یک رشته رو میگیرد و یا کد اسکی رو میخواهید به دست بیارید یا Regex بنویسید یا تطبیق Regex انجام بدید بهتر عمل میکنند و این بهتر عمل کردن مختص به تمام متد ها است یعنی این بهبود به جای اینکه در متد ها تغییر کنه در Core اصلی Javascript تغییر کرده تا تمام قابلیت ها Built-in یا Third-party بتونن ازش استفاده کنند.

خب دیگه بریم سر چیزای عمل تر:

 

قالب های رشته Template String:

قبلا میخواستید چند تا متغیر رو لا به لای یه رشته بگنجونید چه کار انجام میدادید؟!

قطعا مثل زیر عمل میکردید:

خب این همه استفاده از + و "" خیلی سخت است.

به جاش توی ES6 به این صورت عمل میکنیم:

حب دیدم که به جای استفاده از " از ` استفاده کردیم و برای گنجوندن متغیر توی String از {VARIABLE_NAME}$ استفاده میکنیم.

اما یه مزیت دیگه این کار میتونید از قابلیت Multiline بودن اون استفاده کنید. فرض کنید میخواهید ساختار HTML را در قالب یک String در JS داشته باشید.

واقعا این کار آزار دهنده است اما توی ES6 میتونید به این صورت عمل کنید.

خب اما فقط این ها نیست.

متد های جدید String ها:

متد های جدیدی برای کار کردن با رشته در ES6 وجود دارند که کار کردن با String ها را به شدت آسان تر کرده است. قبلا بسیاری از این متد ها را با lodash یا underscore  به برنامه های JS اضافه میکردیم اما حال که وجود دارند از خود آن ها بدون ایحاد Dependency استفاده میکنیم

متد String.startsWith:

این متد چک میکند که آیا String با رشته یا کاراکتر مورد نظر شروع میشود یا خیر. اولین آرگومان این متد رشته مورد نظر است و دومین پارامتر یک عدد است که مشخص میکند شروع کجا باشد.

متد String.endsWith:

این متد چک میکند که آیا String با رشته یا کاراکتر مورد نظر خاتمه پیدا میکند یا خیر. اولین آرگومان این متد رشته مورد نظر است و دومین پارامتر یک عدد است که مشخص میکند شروع کجا باشد.

متد String.includes:

این متد چک میکند که String شامل رشته مورد نظر میشود یا نه در اصل این متد به دنبال رشته مورد نظر در String میگردد و True یا False بر میگرداند.

متد String.repeat:

این متد String را با تعداد مورد نظر تکرار میکند و بر میگرداند برای مثال اگر "hamid" را با مقدار 3 به این متد بدهیم مقدار "hamidhamidhamid" را برمیگرداند.

متد String.codePointAt:

این متد کد ASCII کاراکتر Index که به آن ارجاع داده شده است را برمیگرد برای مثال اگر رشته "HAMID" را داشته باشیم و مقدار 1 را به این متد بدهیم خواهیم دید کد اسکی کارامتر A که 65 است بازگشت داده میشود. این متدحتی با Unicode و… کاراکتر هایی مثل 𠮷 مشکلی نداره.

متد String.fromCodePoint:

این متد دقیقا بر عکس متد قبل عمل میکند. این متد یک متد Static است یعنی با رشته ای صدا زده نمیشود و به صورت String.fromCodePoint صدا زده میشود.

این متد به مقدار دلخواه عدد میگیرد و کاراکتر موجود در آن کد اسکی را برمیگرداند. برای مثال اگر 65, 66, 67 را به این متد بدهیم مقدار ABC به ما بازگشت داده میشود.

تبدیل رشته به آرایه ها:

برای این کار کافیه به جای استفاده از splitبه صورت زیر عمل کنید.

حلقه بروی تک تک کاراکتر های رشته:

برای اینکه روی تک تک کاراکتر های یک رشته در JS معمولی باید کارهای زیادی میکردیم اما توی ES6 به راحتی با ایجاد یک for of این کار رو انجام میدید حتی این کار با Unicode و کارامتر های ME هم مشکلی نداره

توی قسمت بعدی سعی میکنیم یه مطلب درباره قابلیت های ریز و درست و درشت و دستورات جدید صحبت کنیم و همچنین درباره قابلیت هایی برای متغیر ها و Object ها و Array ها  و… صحبت کنیم خلاصه اینکه 3 قسمت دیگه ازین سری آموزش ها باقی مونده که البته باید بگم قطعا به همه قابلیت های ES6 نمیتونیم اشاره کنیم ولی قطعا تا جایی که بشه سر نخ هارو به شما ارائه میدم.

  • سلام
    ممنون از مقاله‌های بسیار خوب و جالبی که قرار میدین.
    نوشته های بابون برای دولوپرهای به روز بسیار آموزنده هستند.
    موفق باشید.