0

ECMAScript 6

Câu chuyện bắt đầu từ một câu hỏi: "biết ES6 hem cu?" (đọc tới đọc lui cuối cùng thì cũng chốt được vài thứ 😄 ) khởi động một chút với lịch sử

ECMAScript

ECMAScript (ES) is a scripting language specification standardized by ECMAScript International. It is used by applications to enable client-side scripting. Languages like JavaScript, Jscript and ActionScript are governed by this specification. This tutorial introduces you to ES6 implementation in JavaScript [1]

  • 1995: LiveScript ra đời
  • 1997: chuẩn ECMAScript được thành lập
  • 1999: ES3 ra đời
  • 2000- 2005: XMLHttpRequest cũng được biết đến như AJAX, làm tăng sự phổ biến của các ứng dụng như Outlook Web Access (2000) và Oddpost (2002), Gmail (2004), và Google Maps (2005)
  • 2009: ES5 ra đời (đây là cái được sử dụng phổ biến nhất hiện nay) với forEach, Object.keys, Object.create (Douglas Crockford), và chuẩn JSON.
  • 2015: ES6/ECMAScript2015 ra đời

Tính năng trong ES6

ES6 có gì hay mà trong tutorialspoint[2] viết lắm thế @@ đọc xong cái ý chắc cũng hết tháng mất

  • Sự khác biết mà hầu hết các tutorial đều nhắc đến đầu tiên đó là việc khai báo biến: let and const
  1. The Let and Block Scope
  • Khai báo một biến trong 1 block code, đóng vai trò như một biến cục bộ Ex 1:
{
let x = 1;
//do something
console.log(x)      //result: 1
}
console.log(x)     //-> undefined

Ex 2:

let no = 10; 
let no = 20; 
console.log(no);      //undefined
  1. The const (read-only)
  • Constants cannot be reassigned a value.
  • A constant cannot be re-declared.
  • A constant requires an initializer. This means constants must be initialized during its declaration.
  • The value assigned to a const variable is mutable. Ex 3:
const x = 10 
x = 12 // will result in an error!!
  1. Function Có kha khá nhiều thứ hay ho ở đây nhé @@
  • nó có thể trả về nhiều giá trị @@
function multi_values() {
  return [1, 2, 3, 4, 5, 6];
}
// khi muốn gọi giá trị từ hàm trả về
[x1, x2, , , x5, x6] = multi_values();
console.log(x6);  // in ra: "6"

[3]

  • Default function parameters
function add(a, b = 1) { 
   return a+b; 
} 
console.log(add(4)) 

Result:

5
  • Rest Parameters (tương tự như trong java, các tham số còn lại không hạn chế số lượng các giá trị)
function fun1(...params) { 
   console.log(params.length); 
}  
fun1();  
fun1(5); 
fun1(5, 6, 7); 

result

0 
1 
3
  • Anonymous Function
var res = function( [arguments] ) { ... } 
  • Lambda Expression
([param1, parma2,…param n] )=>statement;

Ex 4:

var foo = (x)=>10+x 
console.log(foo(10)) //result: 20
  • Lamda statement
( [param1, parma2,…param n] )=> {       
   //code block 
}
  • New String Methods Example 1: Chuỗi động
var name = "Brendan"; 
console.log('Hello, ${name}!');

Example 2: Template literals and expressions

var a = 10; 
var b = 10; 
console.log(`The sum of ${a} and ${b} is  ${a+b} `);

Multiline Strings Thay vì sử dụng '\n' hay một thứ gì đó tương tự, để đơn giản chúng ta có thể viết như này:

var multiLine = ' 
   This is 
   a string 
   with multiple 
   lines'; 
console.log(multiLine)

Result

This is 
a string 
with multiple 
line
  • Class ở phiên bản này, chúng t đã có thể sử dụng class như các ngôn ngữ lập trình hướng đối tượng khác với đầy đủ các tính chất, ví dụ như Inheritance in class Example
'use strict' 
class Shape { 
   constructor(a) { 
      this.Area = a
   } 
} 
class Circle extends Shape { 
   disp() { 
      console.log("Area of the circle:  "+this.Area) 
   } 
} 
var obj = new Circle(223); 
obj.disp() 

Result

Area of Circle: 223

Trên đây là một số kiến thức mình tổng hợp được, nguồn: [1]: https://www.tutorialspoint.com/es6/index.htm [2]: https://www.tutorialspoint.com/ [3]: https://viblo.asia/Ngo_Duong/posts/WApGxNbeR06y


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí