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 };