آموزش ویژگی های ECMAScript 6 (جلسه 9) : متدهای اضافه شده به رشته ها



visibility  
mode_comment   ۰

همونطور که اطلاع دارید در جلسه قبل در مورد مقدار پیش فرض برای پارامترهای توابع توضیحاتی رو قرار دادیم. در این جلسه قصد داریم در مورد متدهای اضافه شده به رشته ها یا String در ES6 توضیحاتی رو قرار بدیم.

همونطور که خودتون هم میدونین قبل از اومدن ES6 متدهای مختلفی برای رشته ها وجود داشت. مثلا با استفاده از متد trim میتونیم فضاهای خالی اول و آخر رشته رو حذف کنیم و مثلا با استفاده از متد indexOf میتونیم وجود یک رشته در رشته ای دیگر رو بررسی کنیم. مثلا کد زیر رو در نظر بگیرید:

میبینید که یک رشته قرار دادیم و بعد از اون چک کردیم که Mohammad درون رشته فوق وجود دارد یا خیر. اگر خروجی indexOf مخالف با 1- باشد به معنای این هست که کلمه مورد نظر درون متن وجود دارد. این متد محدودیتهایی رو داره و نمیتونیم هر کاری رو با استفاده از اون انجام بدیم. متدهای جدیدی در ES6 به رشته ها اضافه شده که با استفاده از اونا میتونیم راحتتر رشته ها رو بررسی کنیم. اولین متد که در مورد اون توضیح میدیم، متد includes است. این متد یک رشته رو میگیره و اگر رشته مورد نظر درون متن وجود داشته باشد، true و در غیر اینصورت false برگشت داده میشه. پس کد بالا رو میتونیم بصورت زیر بازنویسی کنیم:

میبینید که دیگه نیازی به عملگرهای منطقی مانند == نیز نیست. این متد اگر تشخیص بدهد که کلمه Mohammad درون رشته مورد نظر وجود دارد، true رو برمیگردونه و دیگه به اول یا آخر بودن اون کاری نداره. حالا فرض کنید میخوایم بررسی کنیم که متن مورد نظر با استفاده از Mohammad شروع میشه یا خیر. یعنی اولین کلمه متن باید Mohammad باشد. برای این کار از متد startsWith استفاده میکنیم. در این متد اگر شرایط وفق کند true و در غیر این صورت false برگشت داده میشه. کد زیر رو در نظر بگیرید:

چون متن مورد نظر با Mohammad شروع شده، پس کدهای درون شرط اجرا میشه و عبارت موجود در Console چاپ میشه. اما متن زیر رو در نظر بگیرید:

چون متن مربوط به متغیر sampleName، با Mohammad شروع نشده پس شرط اجرا نمیشه و کدهای درون else اجرا میشه و متن مورد نظر در console چاپ میشه.

یک متد دیگه برعکس متد startsWith وجود داره و اون هم endsWith است و میتونین با استفاده از اون بررسی کنید که متن مورد نظر به کلمه ای خاص ختم میشه یا خیر. متد endsWith نیز مانند متدهای قبل true یا false رو برگشت میده و میتونین با استفاده از اون کارهای مورد نظر رو انجام بدین. کد زیر رو در نظر بگیرید:

در کد بالا چون متن مورد نظر به Esfandiari ختم شده پس شرط مورد نظر صدق میکنه و متن مورد نظر در Console چاپ میشه. هر سه متد بالا یک ورودی و آرگومان دیگه رو نیز دریافت میکنن که با استفاده از اون میتونین موقعیت شروع بررسی رو مشخص کنید و تغییر بدین. مثلا کد زیر رو یکبار دیگه در نظر بگیرید:

چون در کد بالا متن با Mohammad شروع نشده پس شرط اجرا نمیشه. اما اگر ورودی دوم متد startsWith رو 6 قرار بدیم، این متد از اندیس 6 مربوط به متن بررسی رو انجام میده و چون کلمه Mohammad در اندیس 6 قرار دارد، پس شرط مورد نظر اجرا میشه، بصورت زیر:

بهمین راحتی.

یک متد جالب دیگه که به رشته ها اضافه شده، متد repeat هست که با استفاده از اون میتونین رشته مورد نظرتون رو به تعداد دلخواه تکرار کنید. مثلا کد زیر رو در نظر بگیرید:

میبینید که رشته Foo رو 5 بار تکرار کردیم و در Console چاپ کردیم. با این کار مقدار FooFooFooFooFoo چاپ خواهد شد. از این متد میتونین در جاهای زیادی استفاده کنید و بهره ببرید. مثلا کد زیر رو در نظر بگیرید:

میبینید که در ابتدا و انتهای متن مورد نظر، 5 علامت مساوی رو تکرار کرده و قرار دادیم. خروجی بصورت زیر خواهد شد:

به همین راحتی.

موفق و پیروز باشید.

یا علی

comment دیدگاه کاربران
ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.