ECMAScript 6 - ECMAScript 2015

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;
// Here x is 10
{ 
  let x = 2;
  // Here x is 2
}
// Here x is 10

Ç××ÔÊÔÒ»ÊÔ

JavaScript const

const Óï¾äÔÊÐíÄúÉùÃ÷³£Á¿£¨¾ßÓг£Á¿ÖµµÄ JavaScript ±äÁ¿£©¡£

³£Á¿ÀàËÆÓÚ let ±äÁ¿£¬µ«²»Äܸü¸ÄÖµ¡£

ʵÀý

var x = 10;
// Here x is 10
{ 
  const x = 2;
  // Here x is 2
}
// Here x is 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 is 10 if not passed or undefined
  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) {
  return value > 18;
}

Ç××ÔÊÔÒ»ÊÔ

Çë×¢Òâ´Ëº¯Êý½ÓÊÜ 3 ¸ö²ÎÊý£º

  • ÏîĿֵ
  • ÏîÄ¿Ë÷Òý
  • Êý×é±¾Éí

Array.findIndex()

findIndex() ·½·¨·µ»ØÍ¨¹ý²âÊÔº¯ÊýµÄµÚÒ»¸öÊý×éÔªËØµÄË÷Òý¡£

´ËÀýÈ·¶¨´óÓÚ 18 µÄµÚÒ»¸öÔªËØµÄË÷Òý£º

ʵÀý

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

Ç××ÔÊÔÒ»ÊÔ

Çë×¢Òâ´Ëº¯Êý½ÓÊÜ 3 ¸ö²ÎÊý£º

  • ÏîĿֵ
  • ÏîÄ¿Ë÷Òý
  • Êý×é±¾Éí

еÄÊý×ÖÊôÐÔ

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 ¶ÔÏóÌí¼ÓÁË 2 ¸öз½·¨£º

  • 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¡£ÕâÊDz»°²È«µÄ£º9007199254740992¡£

еÄÈ«¾Ö·½·¨

ES6 »¹Ôö¼ÓÁË 2 ¸öеÄÈ«¾ÖÊý×Ö·½·¨£º

  • 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 ¹Ø¼ü×ÖÒÔ¼°»¨À¨ºÅ¡£

ʵÀý

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

// ES6
const x = (x, y) => x * y;

Ç××ÔÊÔÒ»ÊÔ

¼ýÍ·¹¦ÄÜûÓÐ×Ô¼ºµÄ this¡£ËüÃDz»Êʺ϶¨Òå¶ÔÏó·½·¨¡£

¼ýÍ·¹¦ÄÜδ±»ÌáÉý¡£ËüÃDZØÐëÔÚʹÓÃǰ½øÐж¨Òå¡£

ʹÓà const ±ÈʹÓà var ¸ü°²È«£¬ÒòΪº¯Êý±í´ïʽʼÖÕÊdz£Á¿Öµ¡£

Èç¹ûº¯ÊýÊǵ¥¸öÓï¾ä£¬ÔòÖ»ÄÜÊ¡ÂÔ return ¹Ø¼ü×ֺͻ¨À¨ºÅ¡£Òò´Ë£¬±£ÁôËüÃÇ¿ÉÄÜÊÇÒ»¸öºÃϰ¹ß£º

ʵÀý

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

Ç××ÔÊÔÒ»ÊÔ

VUE