Từ khi ECMAScript 2015 (cũng được biết với tên gọi ES6) được phát hành. Nó đã giới thiệu nhiều tính năng lớn như arrow function (dùng ký hiệu =>), set, map, class và destructuring… Nhóm phát triển có 39 điều chỉnh đặc điểm kỹ thuật ECMA. Họ quyết định phát hành các phiên bản ECMAScript mới hàng năm bắt đầu từ năm 2015. Bản phát hành hàng năm nghĩa là sẽ không có những thay đổi lớn như ES6
ECMAScript 2016 chỉ giới thiệu 2 tính năng mới:
- Array.prototype.includes()
- Toán tử luỹ thừa
Array.prototype.includes()
Array.prototype.includes()
kiểm tra giá trị value
được truyền vào như một tham số argument
có tồn tại trong mảng không. Nếu chứa giá trị value
thì trả về true
, nếu không thì sẽ trả về false
Trước đây, chúng ta cần sử dụng Array.prototype.indexOf()
để kiểm tra mảng đã cho có chứa phần tử hay không.
let numbers = [1, 2, 3, 4]; if(numbers.indexOf(2) !== -1) { console.log('Array contains value'); }
với ECMAScript 2016 chúng ta có thể viết như sau
if(numbers.includes(2)) { console.log('Array contains value'); }
Array.prototype.includes()
kiểm soát việc bị NaN
tốt hơn Array.prototype.indexOf()
. Nếu mảng chứa NaN
thì indexOf()
sẽ không trả về index chính xác khi tìm kiếm cho NaN
Array.prototype.includes()
trả về giá trị chính xác khi tìm kiếm cho NaN
NaN
là thuộc tính của Object global trong Javascript và tượng trưng cho cho giá trị mà không phải là số (Not-a-Number). Có những điều không rõ ràng đã được biết khi chúng ta so sánh giá trị NaN
với các giá trị khác. Những cái này đã được giải quyết trong Array.prototype.includes()
, nhưng không áp dụng trong Array.prototype.indexOf()
.
let numbers = [1, 2, 3, 4, NaN]; console.log(numbers.indexOf(NaN)); //Prints -1 console.log(numbers.includes(NaN)); //Prints true
Toán tử luỹ thừa
Javascript đã hỗ trợ rất nhiều toán tử toán học như là +, -, *
…
EMACScript 2016 giới thiệu một toán tử mới gọi là toán tử luỹ thừa, **
Nó có cùng mục đích như là Math.pow(). Nó sẽ trả về một kết quả luỹ thừa ví dụ có 2 tham số vào là a và b thì kết quả sẽ là tích số của phép nhân có b thừa số a nhân với nhau.
let base = 3; let exponent = 4; let result = base**exponent; console.log(result); //81