Những điểm mới trong ES6 (ECMAScript 2015)
– ECMAScript 6 còn được gọi là ES6 hay ECMAScript 2015.
– Một số người thích gọi nó là JavaScript 6.
– Trong bài viết này sẽ giới thiệu một số tính năng quan trọng nhất của ES6.
- Từ khóa let
- Từ khóa const
- Array.find() Trả về giá trị (value) của phần tử đầu tiên thỏa mãn một điều kiện cụ thể
- Array.findIndex() Trả về vị trí (index) của phần tử đầu tiên thỏa mãn một điều kiện cụ thể
- ES6 cho phép các tham số hàm có giá trị mặc định
- Các Number Properties mới
- EPSILON
- MIN_SAFE_INTEGER
- MAX_SAFE_INTEGER
- Các Number Methods mới
- Number.isInteger()
- Number.isSafeInteger()
- Các Global Methods mới
- isFinite()
- isNan
- Arrow Functions
5. ES6 cho phép các tham số hàm có giá trị mặc định
Ví dụ:
[code language=”javascript”]function myFunction(x, y = 10) {// y là 10
// nếu truyền thiếu tham số của y
// hoặc truyền vào y là undefined
return x + y;
}
myFunction(5); // return 15[/code] Try it »
6. Các Number Properties mới
ES6 đã thêm các thuộc tính sau vào đối tượng Number:
- EPSILON
- MIN_SAFE_INTEGER
- MAX_SAFE_INTEGER
Ví dụ:
[code language=”javascript”]var x = Number.EPSILON; // 2.220446049250313e-16[/code] Try it »Ví dụ:
[code language=”javascript”]var x = Number.MIN_SAFE_INTEGER; // -9007199254740991[/code] Try it »Ví dụ:
[code language=”javascript”]var x = Number.MAX_SAFE_INTEGER; // 9007199254740991[/code] Try it »7. Các Number Methods mới
ES6 đã thêm 2 phương thức mới vào đối tượng Number:
- Number.isInteger()
- Number.isSafeInteger()
7.1. Phương thức Number.isInteger()
Phương thức Number.isInteger() trả về true nếu đối số (argument) là một số nguyên (integer). Ngược lại trả về false:
Ví dụ:
[code language=”javascript”]Number.isInteger(10); // return trueNumber.isInteger(10.5); // return false[/code] Try it »
7.2. Phương thức Number.isSafeInteger()
Phương thức Number.isSafeInteger() trả về true nếu argument là một số nguyên an toàn (safe integer). Ngược lại trả về false:
Ví dụ:
[code language=”javascript”]Number.isSafeInteger(10); // return trueNumber.isSafeInteger(12345678901234567890); // return false[/code] Try it »
– Số nguyên an toàn là tất cả các số nguyên từ -(253 - 1)
đến +(253 - 1)
– Số nguyên an toàn: 9007199254740991.
– Số nguyên không an toàn: 9007199254740992.
8. Các Global Methods mới
ES6 cũng đã thêm 2 phương thức global number mới:
- isFinite()
- isNaN()
8.1. Phương thức isFinite()
Phương thức global isFinite() trả về trả về false nếu argument là Infinity hoặc NaN. Ngược lại trả về true:
Ví dụ:
[code language=”javascript”]isFinite(10/0); // return falseisFinite(10/1); // return true[/code] Try it »
8.2. Phương thức isNaN()
Phương thức global isNaN() trả về true nếu argument là NaN. Ngược lại trả về false:
Ví dụ:
[code language=”javascript”]isNaN("Hello"); // return trueisNaN("10"); // return false[/code] Try it »
9. Arrow Functions
– Các Arrow Functions cung cấp cho bạn một cú pháp ngắn (short syntax) để viết các biểu thức hàm (function expressions).
– Bạn không cần từ khóa function, từ khóa return và cặp dấu ngoặc nhọn curly brackets {}.
Ví dụ 1:
[code language=”javascript”]// ES5var x = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;[/code]
Try it »
– Các Arrow Functions thì không có this của chúng, chúng không thích hợp cho việc định nghĩa các object methods.
– Các Arrow Functions phải được định nghĩa (define) trước khi chúng được sử dụng. Bởi vì biểu thức hàm (function expression) là một giá trị không đổi, nên khai báo bằng từ khóa const là an toàn hơn so với sử dụng var.
– Bạn chỉ có thể bỏ qua từ khóa return và cặp dấu ngoặc nhọn curly brackets {} nếu hàm (function) là một câu lệnh đơn như ví dụ 1. Hoặc giữ lại return
và {}
như ví dụ 2 bên dưới cũng là một thói quen tốt: