دوشنبه , خرداد ۷ ۱۳۹۷
خانه / مقالات / برنامه نویسی / web developer / Front End / ویژگی های ES8 و یا EcmaScript2017
ویژگی های ES8

ویژگی های ES8 و یا EcmaScript2017

ویژگی های ES8 – در این مقاله سعی داریم بطور خلاصه ویژگی های اصلی  نسخه 8 اکما اسکریپت که به ECMAScript 2017  مشهور است را معرفی کنیم. همراه ما باشید.

String padding

بوسیله این ویژگی شما میتوانید به ابتدا و یا انتهای شی String خودتون ویژگی padding  و یا فاصله رو اضافه کنید. بطور کلی به روش زیر تعریف می شود.

str.padStart(targetLength [, padString])
str.padEnd(targetLength [, padString])

همانطور که مشاهده میکنید اولین پارامتر توابع بالا targetLength است که مشخص کنده میزان فاصله ابتدا و یا انتهای String است. دومین پارامتر که اختیاری است رشته جایگزین فضای خالی را مشخص میکند. توجه کنید که targetLength طول رشته جاری را هم در نظر میگیرد. به مثال زیر توجه کنید.

'es8'.padStart(2);          // 'es8'
'es8'.padStart(5);          // '  es8'
'es8'.padStart(6, 'woof');  // 'wooes8'
'es8'.padStart(14, 'wow');  // 'wowwowwowwoes8'
'es8'.padStart(7, '0');     // '0000es8'
'es8’.padEnd(2);          // 'es8'
'es8’.padEnd(5);          // 'es8  '
'es8’.padEnd(6, 'woof’);  // 'es8woo'
'es8’.padEnd(14, 'wow’);  // 'es8wowwowwowwo'
'es8’.padEnd(7, '6’);     // 'es86666'

ویژگی های ES8

Object.values and Object.entries

Object.values تمامی value های یک شی با ویژگی های key,value را بصورت آرایه بر میگرداند. که بصورت زیر تعریف میشود.

Object.values(obj)

شی obj در واقع همان آبجکت منبع ماست که میتواند شی json باشد و یا یک آرایه(اگر بصورت آرایه باشد index های آرایه به عنوان key  و مقادیر آرایه بصورت value ) در نظر گرفته می شود. به مثال های زیر توجه کنید.

const obj = { x: 'xxx', y: 1 };
Object.values(obj); // ['xxx', 1]

const obj = ['e', 's', '8']; // same as { 0: 'e', 1: 's', 2: '8' };
Object.values(obj); // ['e', 's', '8']

// when we use numeric keys, the values returned in a numerical 
// order according to the keys
const obj = { 10: 'xxx', 1: 'yyy', 3: 'zzz' };
Object.values(obj); // ['yyy', 'zzz', 'xxx']
Object.values('es8'); // ['e', 's', '8']

ویژگی های ES8

Object.entries این متد شی json ، آرایه و یا رشته ورودی را بصورت یک آرایه key,value باز میگرداند.

const obj = { x: 'xxx’, y: 1 };
Object.entries(obj); // [[’x’, 'xxx’], [’y’, 1]]

const obj = [’e’, 's’, '8’];
Object.entries(obj); // [[’0’, 'e’], [’1’, 's’], [’2’, '8’]]

const obj = { 10: 'xxx’, 1: 'yyy’, 3: 'zzz' };
Object.entries(obj); // [[’1’, 'yyy’], [’3’, 'zzz’], [’10’, 'xxx’]]
Object.entries('es8'); // [['0', 'e'], ['1', 's'], ['2', '8']]

ویژگی های ES8

Object.getOwnPropertyDescriptors

این متد تمامی اطلاعات مربوط به یک شی را بر میگرداند برای درک بیشتر به مثال زیر توجه کنید.

const obj = { 
  get es7() { return 777; },
  get es8() { return 888; }
};
Object.getOwnPropertyDescriptors(obj);
// {
//   es7: {
//     configurable: true,
//     enumerable: true,
//     get: function es7(){}, //the getter function
//     set: undefined
//   },
//   es8: {
//     configurable: true,
//     enumerable: true,
//     get: function es8(){}, //the getter function
//     set: undefined
//   }
// }

ویژگی های ES8

Async functions

یکی از ویژگی های ES8 تعریف توابع آسنکرون یا ناهمگام است. به مثال زیر توجه کنید.

function fetchTextByPromise() {
  return new Promise(resolve => { 
    setTimeout(() => { 
      resolve("es8");
    }, 2000);
  });
}
async function sayHello() { 
  const externalFetchedText = await fetchTextByPromise();
  console.log(`Hello, ${externalFetchedText}`); // Hello, es8
}
sayHello();

با اجرای تکه کد بالا پس از دو ثانبه کلمه Hello, es8 چاپ می شود. برای بهتر تشخیص دادن خروجی دستورات زیر را به تکه کد بالا اضافه می کنیم.

console.log(1);
sayHello();
console.log(2);

و پس اجرای دوباره برنامه خروجی به شکل زیر خواهد بود.

1 // immediately
2 // immediately
Hello, es8 // after 2 seconds

ویژگی های ES8

 

ویژگی های ES8

  • آیا این مقاله مفید بود؟
  • بله   خیر

با تمام وجود علاقمندم مباحث جدید مربوط به برنامه نویسی رو یاد بگیرم و به دیگران یاد بدم. نیمی از زمان روزانه رو صرف یادگیری میکنم. سعی میکنم مقالات مفید و جدید در حوزه برنامه نویسی و به ویژه جاوا اسکریپت رو برای شما دوستان عزیز در لایو گوگل منتشر کنم.

۳ کامنت ها

  1. ممنونم دوست عزیزم
    خیلی خوب بوود، امیدوارم همیشه ادامه بدی

  2. با سلام خدمت مهندس محترم.مطالبتون خیلی خوب و عالی بود.خسته نباشید

  3. با سلام خدمت مهندس محترم.مطالبتون خیلی خوب و کاربردی بود.با تشکر از زحمات بی وقفه جنابعالی.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.