JavaScript ES6

ECMAScript 6 چیست؟

ECMAScript 6 نیز به ES6 و ECMAScript 2015 معروف است.

برخی آن را JavaScript 6 می‌نامند.

این فصل برخی از ویژگی‌های جدید ES6 را معرفی می‌کند.

  • JavaScript let
  • JavaScript const
  • توان (**)
  • مقادیر پیش‌فرض
  • Array.find()
  • Array.findIndex()

پشتیبانی مرورگرها از ES6 (ECMAScript 2015)

Safari 10 و Edge 14 اولین مرورگرهایی هستند که ES6 را به طور کامل پشتیبانی می‌کنند:

Chrome 58 Edge 14 Firefox 54 Safari 10 Opera 55
Jan 2017 Aug 2016 Mar 2017 Jul 2016 Aug 2018

JavaScript let

دستور let اجازه می‌دهد که متغیرها را با محدوده حوزه بلوک اعلام کنید.

مثال

var x = 10;
// در اینجا x برابر 10 است
{ 
  let x = 2;
  // در اینجا x برابر 2 است
}
// در اینجا x برابر 10 است

به طور شخصی امتحان کنید

JavaScript const

const این دستور اجازه می‌دهد که متغیرهای ثابت (متغیرهای جاوااسکریپت با مقادیر ثابت) را اعلام کنید.

مانند let متغیر است، اما نمی‌توان ارزش آن را تغییر داد.

مثال

var x = 10;
// در اینجا x برابر 10 است
{ 
  const x = 2;
  // در اینجا x برابر 2 است
}
// در اینجا x برابر 10 است

به طور شخصی امتحان کنید

لطفاً در JavaScript Let / Const بیشتر در let و const در اینجا است.

عملگر نمایی (指数运算符)

عملگر به توان (幂运算符)**به توان (**) اولین عملگر را به توان دومین عملگر بالا می‌برد.

مثال

var x = 5;
var z = x ** 2;          // نتیجه 25 است

به طور شخصی امتحان کنید

x ** y نتیجه با Math.pow(x,y) مشابه:

مثال

var x = 5;
var z = Math.pow(x,2);   // نتیجه 25 است

به طور شخصی امتحان کنید

مقادیر پیش‌فرض

ES6 اجازه داده شده است که پارامترهای تابع دارای مقادیر پیش‌فرض باشند.

مثال

function myFunction(x, y = 10) {
  // اگر y منتقل نشده باشد یا undefined باشد، y برابر 10 است
  return x + y;
}
myFunction(5); // بازمی‌گرداند 15

به طور شخصی امتحان کنید

Array.find()

find() مетод به اولین عنصر آرایه‌ای که از طریق تابع تستی باز می‌گرداند.

این مثال جستجو را (برگشت) برای اولین عنصر بزرگتر از 18 انجام می‌دهد:

مثال

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);
function myFunction(value, index, array) {
  بازمی‌گردد به value > 18;
}

به طور شخصی امتحان کنید

لطفاً توجه داشته باشید که این تابع سه پارامتر را می‌پذیرد:

  • مقدار آیتم
  • ایندکس آیتم
  • مجموعه‌ای از اعداد

Array.findIndex()

findIndex() مетод به اولین عنصر آرایه‌ای که از طریق تابع تستی باز می‌گرداند.

این مثال ایندکس اولین عنصر بزرگتر از 18 را تعیین می‌کند:

مثال

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);
function myFunction(value, index, array) {
  بازمی‌گردد به value > 18;
}

به طور شخصی امتحان کنید

لطفاً توجه داشته باشید که این تابع سه پارامتر را می‌پذیرد:

  • مقدار آیتم
  • ایندکس آیتم
  • مجموعه‌ای از اعداد

ویژگی‌های جدید عددی

ES6 ویژگی‌های زیر را به شیء Number اضافه کرده است:

  • EPSILON
  • MIN_SAFE_INTEGER
  • MAX_SAFE_INTEGER

مثال

var x = Number.EPSILON;

به طور شخصی امتحان کنید

مثال

var x = Number.MIN_SAFE_INTEGER;

به طور شخصی امتحان کنید

مثال

var x = Number.MAX_SAFE_INTEGER;

به طور شخصی امتحان کنید

روش‌های جدید عددی

ES6 دو روش جدید برای شیء Number اضافه کرده است:

  • Number.isInteger()
  • Number.isSafeInteger()

مетод Number.isInteger()

اگر پارامتر یک عدد باشد، Number.isInteger() این روش true.

مثال

Number.isInteger(10);        // بازمی‌گردد به true
Number.isInteger(10.5);      // بازمی‌گردد به false

به طور شخصی امتحان کنید

مетод Number.isSafeInteger()

اعداد امن تمام اعداد قابل نمایش دقیق به عنوان عدد دوگانه هستند.

اگر پارامتر یک عدد امن باشد، Number.isSafeInteger() این روش true.

مثال

Number.isSafeInteger(10);    // بازمی‌گردد به true
Number.isSafeInteger(12345678901234567890);  // بازمی‌گردد به false

به طور شخصی امتحان کنید

اعداد امن تمام اعداد از -(253 - 1) تا +(253 - 1) هستند.

این امن است: 9007199254740991. این ناامن است: 9007199254740992.

روش‌های کلی جدید

ES6 دو روش کلی جدید برای اعداد اضافه کرده است:

  • isFinite()
  • isNaN()

مетод isFinite()

اگر پارامتر Infinity یا NaN، سپس isFinite() مетод بازمی‌گردد به false.

در غیر این صورت بازمی‌گردد به true:

مثال

isFinite(10/0);       // بازمی‌گردد به false
isFinite(10/1);       // بازمی‌گردد به true

به طور شخصی امتحان کنید

مетод isNaN()

اگر پارامتر NaN، سپس isNaN() این روش true. در غیر این صورت false:

مثال

isNaN("Hello");       // بازمی‌گردد به true

به طور شخصی امتحان کنید

توابع پیکان (Arrow Function)

توابع پیکان اجازه می‌دهند از یک زبان کوتاه برای نوشتن توابع اکستنشن استفاده شود.

شما نیازی به function کلیدها،return کلیدها وbrace.

مثال

// ES5
var x = function(x, y) {
   return x * y;
}
// ES6
const x = (x, y) => x * y;

به طور شخصی امتحان کنید

توابع پیکان هیچ thisاینها مناسب برای تعریفروش‌های شیء.

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

برای تعریف const در مقایسه با استفاده از var بسیار امن‌تر است، زیرا همیشه تابع‌های اکستنشن مقدار ثابت هستند.

اگر تابع تنها یک جمله باشد، می‌توان آن را حذف کرد return کلیدها و قوس‌ها. بنابراین، حفظ آنها ممکن است یک عادت خوب باشد:

مثال

const x = (x, y) => { return x * y };

به طور شخصی امتحان کنید