Close Menu

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    Tự Động Phân Tích Dữ Liệu Bán Hàng Với Google Sheet, BigQuery và N8N

    Tháng 5 24, 2025

    Thay Thế Cursor Miễn Phí: Biến VS Code Thành Trợ Lý AI Mạnh Mẽ

    Tháng 5 24, 2025

    Hướng Dẫn Toàn Diện: Xây Dựng App Và Kiếm Tiền Từ Nó | Lộ Trình A-Z

    Tháng 5 23, 2025
    Facebook X (Twitter) Instagram
    • Demos
    • Buy Now
    Facebook X (Twitter) Instagram Pinterest Vimeo
    Minh SEOMinh SEO
    • Home
    • Về chúng tôi
    • Contact
    • AI Agent
    • Javascript
    • Quan điểm hay
    Subscribe
    Minh SEOMinh SEO
    Trang chủ » Tóm Tắt Khóa Học JavaScript Cho Người Mới Bắt Đầu – Học Nhanh!
    Javascript

    Tóm Tắt Khóa Học JavaScript Cho Người Mới Bắt Đầu – Học Nhanh!

    minhminhBy minhminhTháng 5 1, 2025Không có bình luận20 Mins Read
    Share Facebook Twitter Pinterest LinkedIn Tumblr Reddit Telegram Email
    Share
    Facebook Twitter LinkedIn Pinterest Email

    Bạn đang muốn học JavaScript nhưng không biết bắt đầu từ đâu? Mình hiểu cảm giác đó – có quá nhiều khái niệm, cú pháp và kỹ thuật cần nắm vững!

    Trong bài viết này, mình sẽ tóm tắt khóa học JavaScript tuyệt vời từ freeCodeCamp, được giảng dạy bởi Beau Carnes. Đây là một khóa học hoàn hảo cho người mới bắt đầu hoặc ai đó muốn ôn lại kiến thức cơ bản về cú pháp JavaScript.

    Nội Dung Chính

    • Chạy JavaScript & Bình Luận (00:00-05:11)
    • Kiểu Dữ Liệu & Biến (05:11-14:05)
    • Toán Tử Số Học (14:05-21:18)
    • Chuỗi Trong JavaScript (21:18-31:18)
    • Mảng Trong JavaScript (31:18-50:36)
    • Hàm Trong JavaScript (50:36-01:08:48)
    • Câu Lệnh If & So Sánh (01:08:48-01:37:35)
    • Đối Tượng (01:37:35-02:05:03)
    • Vòng Lặp (02:05:03-02:24:25)
    • Hàm Ngẫu Nhiên (02:24:25-02:35:56)
    • Tính Năng ES6 (02:35:56-03:26:17)

    Chạy JavaScript & Bình Luận (00:00-05:11)

    JavaScript có thể chạy trực tiếp trên trình duyệt web, không cần cài đặt thêm gì cả. Điều này làm cho JavaScript trở thành ngôn ngữ lập trình phổ biến và dễ tiếp cận nhất.

    Điểm Chính:

    • Có nhiều cách để chạy JavaScript: sử dụng trình duyệt, editor như Sublime Text hoặc VS Code, freeCodeCamp’s editor, CodePen, hoặc Scrimba
    • Comment trong JavaScript có hai dạng: inline comments (//) và multi-line comments (/* */)
    • Comments không ảnh hưởng đến code và được sử dụng để ghi chú hoặc giải thích code
    
    // Đây là một inline comment
    
    /* Đây là một
    multi-line comment
    Bạn có thể viết nhiều dòng */
    
    console.log("Hello world"); // Hiển thị "Hello world" trong console
        

    Ý Kiến Của Mình:

    Console.log() là một công cụ debugging cực kỳ hữu ích trong JavaScript. Mình khuyên bạn nên sử dụng nó thường xuyên để kiểm tra giá trị của biến, output của function, hay đơn giản là để hiểu flow của chương trình. Bạn có thể mở console trong browser bằng F12 hoặc right-click → Inspect → Console nhé!

    Kiểu Dữ Liệu & Biến (05:11-14:05)

    Trong JavaScript, dữ liệu được phân loại thành các kiểu khác nhau. Và để lưu trữ dữ liệu, chúng ta sử dụng các biến (variables) – giống như những chiếc hộp chứa đựng thông tin.

    Điểm Chính:

    • JavaScript có 7 kiểu dữ liệu: undefined, null, boolean, string, symbol, number, và object
    • 3 cách khai báo biến: var, let, const (mỗi cách có phạm vi và đặc điểm khác nhau)
    • var có phạm vi function hoặc global scope
    • let có phạm vi block scope (trong cặp ngoặc nhọn {})
    • const không thể gán lại giá trị sau khi đã khai báo
    • Khởi tạo biến (initialization) là quá trình gán giá trị ban đầu cho biến
    • JavaScript phân biệt chữ hoa/thường trong tên biến (case sensitive)
    
    // Khai báo biến
    var myName = "Beau";  // Có thể thay đổi giá trị sau
    let ourName = "freeCodeCamp";  // Block scope
    const PI = 3.14;  // Không thể thay đổi giá trị
    
    // Các kiểu dữ liệu
    var myString = "Đây là một chuỗi";  // String
    var myNumber = 10;  // Number
    var myBoolean = true;  // Boolean
    var myUndefined;  // Undefined
    var myNull = null;  // Null
    var myObject = {name: "Beau", age: 31};  // Object
    
    // Case sensitivity
    var StUdLyCapVar;  // Khác với
    var studlyCapVar;  // Biến này
    
    // Camel Case (quy ước đặt tên phổ biến)
    var thisIsACamelCaseVariable;
        

    Ý Kiến Của Mình:

    Hiện nay, best practice trong JavaScript là sử dụng const mặc định cho mọi biến, chỉ dùng let khi bạn cần thay đổi giá trị biến, và tránh sử dụng var. Điều này giúp code của bạn ít bug hơn và dễ hiểu hơn. Bạn có thử áp dụng quy tắc này chưa?

    Toán Tử Số Học (14:05-21:18)

    JavaScript cho phép thực hiện các phép tính số học cơ bản như cộng, trừ, nhân, chia. Ngoài ra còn có các toán tử phức tạp hơn để thao tác với số.

    Điểm Chính:

    • Toán tử cộng: +
    • Toán tử trừ: –
    • Toán tử nhân: *
    • Toán tử chia: /
    • Tăng giá trị: ++ (increment)
    • Giảm giá trị: — (decrement)
    • Toán tử chia lấy dư: % (modulo)
    • Toán tử gán kết hợp: +=, -=, *=, /= (compound assignment)
    
    // Các phép tính cơ bản
    var sum = 10 + 10;  // 20
    var difference = 45 - 33;  // 12
    var product = 8 * 10;  // 80
    var quotient = 66 / 33;  // 2
    
    // Tăng/giảm giá trị
    var myVar = 87;
    myVar++;  // Tương đương với myVar = myVar + 1
    myVar--;  // Tương đương với myVar = myVar - 1
    
    // Số thập phân
    var myDecimal = 0.009;
    
    // Phép chia lấy dư
    var remainder = 11 % 3;  // 2 (11 chia 3 dư 2)
    
    // Toán tử gán kết hợp
    var a = 3;
    a += 12;  // Tương đương với a = a + 12 (a = 15)
    a -= 6;   // Tương đương với a = a - 6 (a = 9)
    a *= 2;   // Tương đương với a = a * 2 (a = 18)
    a /= 3;   // Tương đương với a = a / 3 (a = 6)
        

    Ý Kiến Của Mình:

    Toán tử modulo (%) thường bị bỏ qua trong các khóa học cơ bản, nhưng nó cực kỳ hữu ích đặc biệt để kiểm tra số chẵn/lẻ (n % 2 === 0) hoặc trong các thuật toán xoay vòng. Một mẹo nhỏ: bạn có thể dùng (n % 2 === 0 ? “Chẵn” : “Lẻ”) để kiểm tra số chẵn lẻ một cách nhanh chóng!

    Chuỗi Trong JavaScript (21:18-31:18)

    Chuỗi (string) trong JavaScript là một tập hợp các ký tự được đặt trong dấu nháy đơn, nháy kép hoặc backticks. JavaScript cung cấp nhiều phương thức để thao tác với chuỗi.

    Điểm Chính:

    • Chuỗi có thể được tạo bằng dấu nháy đơn, nháy kép hoặc backticks
    • Escape character (\) được sử dụng để hiển thị các ký tự đặc biệt
    • Nối chuỗi (concatenation) bằng toán tử +
    • Chuỗi có thuộc tính length để đếm số ký tự
    • Truy cập ký tự trong chuỗi bằng notation [] (index bắt đầu từ 0)
    • Chuỗi là immutable (không thể thay đổi từng ký tự riêng lẻ)
    
    // Khai báo chuỗi
    var myString = "Đây là chuỗi với dấu nháy kép";
    var singleQuote = 'Đây là chuỗi với dấu nháy đơn';
    var backtickString = `Đây là chuỗi với backticks`;
    
    // Escape characters
    var escape = "Tôi nói \"JavaScript rất thú vị\"";
    var newLine = "Dòng đầu tiên.\nDòng thứ hai.";
    
    // Nối chuỗi
    var ourStr = "Phần đầu. " + "Phần sau.";
    var str = "Hello";
    str += " World"; // str giờ là "Hello World"
    
    // Nối chuỗi với biến
    var name = "Beau";
    var message = "Xin chào, tên tôi là " + name + "!";
    
    // Độ dài chuỗi
    var nameLength = name.length; // 4
    
    // Truy cập ký tự trong chuỗi
    var firstLetter = name[0]; // "B"
    var lastLetter = name[name.length - 1]; // "u"
    
    // Chuỗi là immutable
    var myStr = "Jello World";
    // myStr[0] = "H"; // Lỗi! Không thể thay đổi
    myStr = "Hello World"; // Có thể gán lại toàn bộ chuỗi
        

    Ý Kiến Của Mình:

    Backticks (`) là cách hiện đại nhất để tạo chuỗi trong JavaScript. Chúng cho phép bạn tạo template literals – một cách viết chuỗi mạnh mẽ cho phép nhúng biến và biểu thức trực tiếp vào chuỗi bằng cú pháp ${variable}. Ví dụ: `Xin chào, ${name}!` thay vì phải nối chuỗi. Amazing, right?

    Mảng Trong JavaScript (31:18-50:36)

    Mảng (array) là cấu trúc dữ liệu cho phép lưu trữ nhiều giá trị trong một biến duy nhất. JavaScript cung cấp nhiều phương thức mạnh mẽ để thao tác với mảng.

    Điểm Chính:

    • Mảng được khai báo bằng dấu ngoặc vuông []
    • Mảng có thể chứa nhiều loại dữ liệu khác nhau
    • Mảng lồng nhau (nested arrays) là mảng chứa mảng khác
    • Truy cập phần tử trong mảng bằng index (bắt đầu từ 0)
    • Phương thức push() thêm phần tử vào cuối mảng
    • Phương thức pop() xóa và trả về phần tử cuối mảng
    • Phương thức shift() xóa và trả về phần tử đầu mảng
    • Phương thức unshift() thêm phần tử vào đầu mảng
    
    // Khai báo mảng
    var myArray = ["string", 1];
    
    // Mảng lồng nhau
    var nestedArray = [["John", 23], ["dog", 3]];
    
    // Truy cập phần tử trong mảng
    var firstElement = myArray[0]; // "string"
    
    // Truy cập phần tử trong mảng lồng nhau
    var johnAge = nestedArray[0][1]; // 23
    
    // Thay đổi phần tử trong mảng
    myArray[1] = 45; // Mảng giờ là ["string", 45]
    
    // Thêm phần tử vào cuối mảng
    myArray.push("new item"); // ["string", 45, "new item"]
    
    // Xóa phần tử cuối mảng
    var lastItem = myArray.pop(); // lastItem = "new item", myArray = ["string", 45]
    
    // Xóa phần tử đầu mảng
    var firstItem = myArray.shift(); // firstItem = "string", myArray = [45]
    
    // Thêm phần tử vào đầu mảng
    myArray.unshift("first"); // myArray = ["first", 45]
    
    // Ví dụ shopping list
    var shoppingList = [
      ["Cereal", 3], 
      ["Milk", 2], 
      ["Bananas", 3], 
      ["Juice", 2], 
      ["Eggs", 12]
    ];
        

    Ý Kiến Của Mình:

    Trong thực tế, bạn sẽ thường xuyên thao tác với mảng, không chỉ là push/pop cơ bản. JavaScript có các phương thức array nâng cao như map(), filter(), reduce() mà bạn sẽ học sau này – đây là những công cụ vô cùng mạnh mẽ và giúp code của bạn ngắn gọn, rõ ràng hơn. Khi làm việc với mảng phức tạp, đừng ngại sử dụng console.log() để kiểm tra trạng thái của mảng sau mỗi thao tác nhé!

    Hàm Trong JavaScript (50:36-01:08:48)

    Hàm (function) là một khối code được thiết kế để thực hiện một nhiệm vụ cụ thể và có thể tái sử dụng. Hàm là khái niệm cốt lõi trong JavaScript.

    Điểm Chính:

    • Hàm được khai báo với từ khóa function
    • Hàm có thể nhận parameters (tham số) làm input
    • Có thể trả về giá trị bằng từ khóa return
    • Scope là phạm vi mà biến có thể được truy cập
    • Global scope: biến có thể truy cập từ mọi nơi trong code
    • Local scope: biến chỉ có thể truy cập trong phạm vi hàm
    • Biến local có quyền ưu tiên cao hơn biến global nếu trùng tên
    
    // Khai báo hàm cơ bản
    function reusableFunction() {
      console.log("Hi World");
    }
    
    // Gọi hàm
    reusableFunction();
    
    // Hàm với tham số
    function functionWithArgs(a, b) {
      console.log(a + b);
    }
    functionWithArgs(10, 5); // 15
    
    // Hàm có return
    function timesFive(num) {
      return num * 5;
    }
    var result = timesFive(5); // 25
    
    // Global scope vs Local scope
    var outerWear = "T-Shirt"; // Global
    
    function myOutfit() {
      var outerWear = "sweater"; // Local
      return outerWear;
    }
    
    myOutfit(); // "sweater"
    console.log(outerWear); // "T-Shirt"
    
    // Gán giá trị trả về từ hàm
    var processed = 0;
    function processArg(num) {
      return (num + 3) / 5;
    }
    
    processed = processArg(7); // 2
        

    Ý Kiến Của Mình:

    Hàm trong JavaScript là first-class citizens – nghĩa là bạn có thể gán chúng cho biến, truyền vào hàm khác như tham số, hoặc trả về từ hàm khác. Đây là nền tảng cho các kỹ thuật lập trình hàm (functional programming) mà bạn sẽ thấy rất nhiều trong JavaScript hiện đại. Thử nghĩ xem: tại sao React hooks như useEffect() lại nhận một function làm tham số?

    Câu Lệnh If & So Sánh (01:08:48-01:37:35)

    Câu lệnh điều kiện (conditional statements) cho phép thực thi code dựa trên điều kiện. JavaScript cung cấp nhiều toán tử so sánh để kiểm tra điều kiện.

    Điểm Chính:

    • Câu lệnh if kiểm tra điều kiện và thực thi code nếu điều kiện đúng
    • Câu lệnh else thực thi code khi điều kiện sai
    • Câu lệnh else if cho phép kiểm tra nhiều điều kiện
    • Toán tử so sánh: ==, ===, !=, !==, >, >=, <, <=
    • Toán tử logic: && (AND), || (OR), ! (NOT)
    • Switch statement: thay thế cho nhiều câu lệnh if-else
    • Toán tử điều kiện (ternary): cú pháp ngắn gọn cho if-else
    
    // Câu lệnh if cơ bản
    function test(myCondition) {
      if (myCondition) {
        return "It was true";
      }
      return "It was false";
    }
    
    // Toán tử so sánh
    function testEqual(val) {
      if (val == 12) { // So sánh với chuyển đổi kiểu
        return "Equal";
      }
      return "Not Equal";
    }
    
    function testStrict(val) {
      if (val === 12) { // So sánh nghiêm ngặt (không chuyển đổi kiểu)
        return "Equal";
      }
      return "Not Equal";
    }
    
    // Toán tử logic
    function testLogical(val) {
      if (val > 5 && val < 10) { return "Yes"; } return "No"; } // Câu lệnh if-else function testElse(val) { if (val > 5) {
        return "Bigger than 5";
      } else {
        return "5 or Smaller";
      }
    }
    
    // Câu lệnh else if
    function testElseIf(val) {
      if (val > 10) {
        return "Greater than 10";
      } else if (val < 5) {
        return "Smaller than 5";
      } else {
        return "Between 5 and 10";
      }
    }
    
    // Switch statement
    function caseInSwitch(val) {
      switch(val) {
        case 1:
          return "alpha";
          break;
        case 2:
          return "beta";
          break;
        case 3:
          return "gamma";
          break;
        case 4:
          return "delta";
          break;
        default:
          return "Something else";
          break;
      }
    }
    
    // Toán tử điều kiện (ternary)
    function checkEqual(a, b) {
      return a === b ? true : false;
    }
        

    Ý Kiến Của Mình:

    Toán tử so sánh === và !== luôn nên được ưu tiên sử dụng thay vì == và != để tránh các lỗi không mong muốn từ việc chuyển đổi kiểu tự động của JavaScript. Ngoài ra, toán tử điều kiện (ternary) rất hữu ích cho các trường hợp đơn giản, nhưng đừng lồng ghép quá nhiều toán tử điều kiện vì nó sẽ làm code khó đọc. Clean code is happy code, right?

    Đối Tượng (01:37:35-02:05:03)

    Đối tượng (Objects) trong JavaScript là cấu trúc dữ liệu cho phép lưu trữ và truy xuất dữ liệu theo cặp key-value. Objects là nền tảng của JavaScript.

    Điểm Chính:

    • Object được khai báo bằng cặp dấu ngoặc nhọn {}
    • Properties của object là cặp key-value
    • Truy cập properties bằng dot notation (object.property) hoặc bracket notation (object[“property”])
    • Cập nhật properties bằng cách gán giá trị mới
    • Thêm properties mới bằng cách gán giá trị cho key mới
    • Xóa properties bằng từ khóa delete
    • Object có thể dùng để lookup values thay cho switch/if
    • Kiểm tra xem object có property bằng hasOwnProperty()
    • Objects lồng nhau (nested objects) để tổ chức dữ liệu phức tạp
    
    // Khai báo object
    var myDog = {
      "name": "Quincy",
      "legs": 3,
      "tails": 2,
      "friends": []
    };
    
    // Truy cập properties với dot notation
    var dogName = myDog.name; // "Quincy"
    
    // Truy cập properties với bracket notation
    var dogLegs = myDog["legs"]; // 3
    
    // Truy cập properties với biến
    var property = "name";
    var dogProperty = myDog[property]; // "Quincy"
    
    // Cập nhật properties
    myDog.name = "Happy Quincy";
    
    // Thêm properties mới
    myDog.bark = "woof!";
    
    // Xóa properties
    delete myDog.tails;
    
    // Kiểm tra xem object có property
    var hasProperty = myDog.hasOwnProperty("bark"); // true
    
    // Object phức tạp
    var myStorage = {
      "car": {
        "inside": {
          "glove box": "maps",
          "passenger seat": "crumbs"
        },
        "outside": {
          "trunk": "jack"
        }
      }
    };
    
    // Truy cập nested objects
    var gloveBoxContents = myStorage.car.inside["glove box"]; // "maps"
    
    // Objects và Arrays kết hợp
    var myPlants = [
      { 
        type: "flowers",
        list: ["rose", "tulip", "dandelion"]
      },
      {
        type: "trees",
        list: ["fir", "pine", "birch"]
      }
    ];
    
    // Truy cập arrays trong objects
    var secondTree = myPlants[1].list[1]; // "pine"
        

    Ý Kiến Của Mình:

    Object là một trong những khái niệm quan trọng nhất trong JavaScript, vì gần như mọi thứ trong JavaScript đều là object (kể cả function!). Khi làm việc với object phức tạp, bạn nên sử dụng destructuring assignment (ES6) để trích xuất data một cách gọn gàng. Ví dụ: const { name, age } = person; thay vì const name = person.name; const age = person.age;. Tiết kiệm code rất nhiều đúng không?

    Vòng Lặp (02:05:03-02:24:25)

    Vòng lặp (loops) cho phép thực hiện cùng một đoạn code nhiều lần. JavaScript cung cấp nhiều loại vòng lặp khác nhau để xử lý các tình huống lặp lại.

    Điểm Chính:

    • while loop: lặp khi điều kiện là true
    • for loop: lặp với số lần xác định
    • do…while loop: lặp ít nhất một lần, sau đó kiểm tra điều kiện
    • for loop có thể đếm ngược hoặc tăng với bước khác 1
    • for loop thường được dùng để duyệt mảng
    • Vòng lặp lồng nhau (nested loops) để xử lý cấu trúc dữ liệu đa chiều
    
    // While loop
    var myArray = [];
    var i = 0;
    while(i < 5) {
      myArray.push(i);
      i++;
    }
    // myArray = [0, 1, 2, 3, 4]
    
    // For loop
    var forArray = [];
    for (var i = 1; i < 6; i++) {
      forArray.push(i);
    }
    // forArray = [1, 2, 3, 4, 5]
    
    // For loop với số lẻ
    var oddArray = [];
    for (var i = 1; i < 10; i += 2) { oddArray.push(i); } // oddArray = [1, 3, 5, 7, 9] // For loop đếm ngược var countDown = []; for (var i = 10; i > 0; i -= 2) {
      countDown.push(i);
    }
    // countDown = [10, 8, 6, 4, 2]
    
    // Duyệt mảng với for loop
    var arr = [10, 9, 8, 7, 6];
    var total = 0;
    for (var i = 0; i < arr.length; i++) {
      total += arr[i];
    }
    // total = 40
    
    // Nested for loops
    function multiplyAll(arr) {
      var product = 1;
      for (var i = 0; i < arr.length; i++) {
        for (var j = 0; j < arr[i].length; j++) {
          product *= arr[i][j];
        }
      }
      return product;
    }
    var product = multiplyAll([[1,2],[3,4],[5,6,7]]);
    // product = 5040
    
    // Do...while loop
    var doWhileArray = [];
    var i = 10;
    do {
      doWhileArray.push(i);
      i++;
    } while (i < 5);
    // doWhileArray = [10] (lặp ít nhất một lần)
        

    Ý Kiến Của Mình:

    Trong JavaScript hiện đại, bạn nên ưu tiên sử dụng các phương thức mảng như forEach(), map(), filter() thay vì for loop truyền thống. Chúng không chỉ ngắn gọn hơn mà còn ít gây lỗi hơn vì bạn không phải quản lý biến đếm. Ngoài ra, ES6 còn giới thiệu for…of loop để duyệt array và for…in loop để duyệt object một cách dễ dàng. Let’s do it the modern way!

    Hàm Ngẫu Nhiên (02:24:25-02:35:56)

    JavaScript cung cấp các hàm để tạo số ngẫu nhiên và xử lý chuỗi thành số nguyên.

    Điểm Chính:

    • Math.random() tạo số thập phân ngẫu nhiên từ 0 (bao gồm) đến 1 (không bao gồm)
    • Math.floor() làm tròn xuống số nguyên gần nhất
    • Kết hợp Math.floor() và Math.random() để tạo số nguyên ngẫu nhiên
    • parseInt() chuyển đổi chuỗi thành số nguyên
    • parseInt() có thể nhận tham số thứ hai là radix (cơ số) để xử lý các hệ số khác nhau
    
    // Tạo số thập phân ngẫu nhiên
    var randomDecimal = Math.random(); // 0 <= num < 1
    
    // Tạo số nguyên ngẫu nhiên từ 0 đến 9
    var randomInt = Math.floor(Math.random() * 10); // 0-9
    
    // Tạo số nguyên ngẫu nhiên trong khoảng min đến max
    function randomRange(myMin, myMax) {
      return Math.floor(Math.random() * (myMax - myMin + 1)) + myMin;
    }
    var random = randomRange(5, 15); // 5-15
    
    // Chuyển đổi chuỗi thành số nguyên
    var a = parseInt("56"); // 56 (số)
    
    // Chuyển đổi chuỗi nhị phân thành số nguyên
    var b = parseInt("10011", 2); // 19 (trong hệ thập phân)
        

    Ý Kiến Của Mình:

    Hàm tạo số ngẫu nhiên là một công cụ rất hữu ích khi làm game, mô phỏng, hay thậm chí là tạo dữ liệu test. Một mẹo nhỏ: nếu bạn muốn tạo một giá trị ngẫu nhiên từ một array, có thể dùng: myArray[Math.floor(Math.random() * myArray.length)]. Rất tiện khi bạn muốn chọn ngẫu nhiên một phần tử từ danh sách!

    Tính Năng ES6 (02:35:56-03:26:17)

    ECMAScript 6 (ES6) giới thiệu nhiều tính năng mới cho JavaScript, giúp code trở nên hiện đại và dễ đọc hơn.

    Điểm Chính:

    • let và const: cách khai báo biến mới thay thế cho var
    • Arrow functions: cú pháp ngắn gọn để viết hàm
    • Default parameters: tham số mặc định cho hàm
    • Rest operator (…): nhận vô số tham số vào hàm
    • Spread operator (…): trải rộng mảng thành các phần tử riêng lẻ
    • Destructuring assignment: trích xuất dữ liệu từ objects và arrays
    • Template literals: chuỗi với cú pháp ${} để nhúng biến
    • Object literal concise: cú pháp ngắn gọn để viết object
    • Classes: cú pháp class để tạo constructor
    • import/export: chia sẻ code giữa các file
    
    // let và const
    let camper = "James";
    const PI = 3.14159;
    
    // Arrow functions
    const magic = () => new Date();
    const doubleIt = (num) => num * 2;
    const sum = (a, b) => a + b;
    
    // Default parameters
    const greeting = (name = "Anonymous") => "Hello " + name;
    greeting("John"); // "Hello John"
    greeting(); // "Hello Anonymous"
    
    // Rest operator
    function howMany(...args) {
      return "You have passed " + args.length + " arguments.";
    }
    howMany(0, 1, 2); // "You have passed 3 arguments."
    howMany("string", null, [1, 2, 3], {}); // "You have passed 4 arguments."
    
    // Spread operator
    const arr1 = ['JAN', 'FEB', 'MAR', 'APR', 'MAY'];
    let arr2 = [...arr1]; // tạo bản sao của arr1
    
    // Destructuring assignment
    const user = { name: 'John Doe', age: 34 };
    const { name, age } = user; // name = 'John Doe', age = 34
    
    // Destructuring từ arrays
    const [a, b,,, c] = [1, 2, 3, 4, 5, 6]; // a = 1, b = 2, c = 5
    
    // Template literals
    const person = { name: "Zodiac", age: 56 };
    const greeting = `Hello, my name is ${person.name}!
    I am ${person.age} years old.`;
    
    // Concise object literals
    const getMousePosition = (x, y) => ({ x, y });
    
    // Class syntax
    class SpaceShuttle {
      constructor(targetPlanet) {
        this.targetPlanet = targetPlanet;
      }
    }
    const zeus = new SpaceShuttle('Jupiter');
    
    // Getters và setters
    class Thermostat {
      constructor(fahrenheit) {
        this._temperature = 5/9 * (fahrenheit - 32);
      }
      
      get temperature() {
        return this._temperature;
      }
      
      set temperature(celsius) {
        this._temperature = celsius;
      }
    }
    
    // import và export
    import { capitalizeString } from "./string_function";
    export const foo = "bar";
        

    Ý Kiến Của Mình:

    ES6 đã cách mạng hóa cách chúng ta viết JavaScript, làm cho code ngắn gọn và dễ đọc hơn rất nhiều. Arrow function là một trong những tính năng mình thích nhất vì nó không chỉ ngắn gọn mà còn không thay đổi giá trị của this, giúp tránh nhiều bugs khó hiểu. Template literals cũng là một game-changer cho việc tạo chuỗi phức tạp. Bạn có đang áp dụng các tính năng ES6 này trong code của mình không?

    Bài viết này tóm tắt video hướng dẫn tuyệt vời được tạo bởi Beau Carnes (freeCodeCamp). Nếu bạn thấy bản tóm tắt này hữu ích, hãy ủng hộ tác giả bằng cách xem toàn bộ video và đăng ký kênh của họ nhé.

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Next Article Tại Sao CODING Có Thể Khiến Bạn Nghèo? Góc Nhìn Về AI & Bitcoin
    minhminh
    • Website

    Related Posts

    Javascript

    Hướng Dẫn Xây Dựng Ứng Dụng Đặt Đồ Ăn Full Stack với React Native

    Tháng 5 19, 2025
    Add A Comment
    Leave A Reply Cancel Reply

    Demo
    Top Posts

    Khắc Phục Tận Gốc Thói Quen Trì Hoãn Với “The End of Procrastination”: Hướng Dẫn Chi Tiết Trong 90 Ngày

    Tháng 5 5, 202510 Views

    Programmable Agentic Coding: Tận Dụng Claude Code Để Tối Ưu Công Việc Lập Trình

    Tháng 5 3, 20256 Views

    Tìm Hiểu Node Trong N8N: Khối Xây Dựng Cơ Bản Cho Workflow

    Tháng 5 6, 20253 Views
    Stay In Touch
    • Facebook
    • YouTube
    • TikTok
    • WhatsApp
    • Twitter
    • Instagram
    Latest Reviews

    Subscribe to Updates

    Get the latest tech news from FooBar about tech, design and biz.

    Demo
    Most Popular

    Khắc Phục Tận Gốc Thói Quen Trì Hoãn Với “The End of Procrastination”: Hướng Dẫn Chi Tiết Trong 90 Ngày

    Tháng 5 5, 202510 Views

    Programmable Agentic Coding: Tận Dụng Claude Code Để Tối Ưu Công Việc Lập Trình

    Tháng 5 3, 20256 Views

    Tìm Hiểu Node Trong N8N: Khối Xây Dựng Cơ Bản Cho Workflow

    Tháng 5 6, 20253 Views
    Our Picks

    Tự Động Phân Tích Dữ Liệu Bán Hàng Với Google Sheet, BigQuery và N8N

    Tháng 5 24, 2025

    Thay Thế Cursor Miễn Phí: Biến VS Code Thành Trợ Lý AI Mạnh Mẽ

    Tháng 5 24, 2025

    Hướng Dẫn Toàn Diện: Xây Dựng App Và Kiếm Tiền Từ Nó | Lộ Trình A-Z

    Tháng 5 23, 2025

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    Facebook X (Twitter) Instagram Pinterest
    • Home
    • Get In Touch
    © 2025 ThemeSphere. Designed by ThemeSphere.

    Type above and press Enter to search. Press Esc to cancel.