강의

멘토링

로드맵

Inflearn brand logo image
Programming

/

Programming Language

Mã hóa cuộc sống - Tính bất biến của JavaScript

Đây là khóa học liên quan đến JavaScript do Life Coding cung cấp. Khóa học này nói về cách xử lý dữ liệu một cách bất biến trong JavaScript.

(4.9) 95 đánh giá

2,772 học viên

  • Egoing Lee
JavaScript

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Cách xử lý dữ liệu bất biến trong JavaScript

  • Sự khác biệt giữa các kiểu dữ liệu nguyên thủy và cách các đối tượng hoạt động

  • Cách nhân bản một đối tượng

  • Cách sửa đổi bản sao mà không sửa đổi đối tượng ban đầu

1. Giới thiệu bài giảng

Khóa học JavaScript Immutability của Life Coding hướng dẫn cách xử lý dữ liệu bất biến trong JavaScript. Dành cho những người học đã quen thuộc với cú pháp JavaScript cơ bản, khóa học này khám phá cách ngăn chặn việc dữ liệu bị hỏng bằng cách làm cho dữ liệu không thể thay đổi.

Khóa học này bao gồm các chủ đề sau:

  • Sự khác biệt giữa cách các kiểu dữ liệu nguyên thủy và các đối tượng hoạt động
  • Cách sao chép một đối tượng
  • Làm thế nào để sửa đổi một bản sao mà không sửa đổi đối tượng gốc

Những điều sau đây không được bảo hiểm:

  • thư viện bất biến

2. Mục tiêu bài giảng

Việc xử lý dữ liệu bất biến giúp giảm đáng kể khả năng xảy ra lỗi do nhiễu giữa các dữ liệu. Nó cũng giúp việc kiểm tra xem dữ liệu có thay đổi hay không trở nên dễ dàng hơn nhiều. Nó cũng đóng vai trò là nền tảng cho việc triển khai các kỹ thuật tiên tiến như tải lại mô-đun nóng và du hành thời gian.

Nếu bạn có thể dự đoán kết quả của tất cả các mã bên dưới, bạn không cần phải học lớp này.

biến n1 = 1;
biến n2 = 1;
console.log(n1 === n2);
=> Đúng vậy. Tất nhiên rồi.

var o1 = {tên:'kim'}
var o2 = {tên:'kim'}
console.log(o1 === o2);
=> false. Có vẻ hơi mơ hồ. JavaScript xử lý các kiểu dữ liệu nguyên thủy, vốn không thay đổi, khác với các đối tượng, vốn có thể thay đổi.

var o1 = {tên:'kim'}
biến o2 = o1;
o2.name = 'lee';
console.log(o1.name);
=> Đây là lee. o1 thậm chí không biết tiếng Anh và giá trị của tên mà nó trỏ tới đã thay đổi.

var o1 = {tên:'kim'}
var o2 = Object.assign({}, o1); // Sao chép o1 vào một đối tượng trống.
o2.name = 'lee';
console.log(o1.name);
=> Đây là Kim. Việc thay đổi o2 không ảnh hưởng đến o1. Điều này cho phép o1 vẫn bất biến so với o2.

var o1 = {điểm:[1,2]}
var o2 = Object.assign({}, o1);
o2.score.push(3);
console.log(o1.score)
=> [1,2,3]. Tôi không biết tiếng Anh, nên o1 đã thay đổi lại. Điều này là do score là một mảng, vốn là một kiểu đối tượng.

var o1 = {điểm:[1,2]}
var o2 = Object.assign({}, o1);
o2.score = o2.score.concat(); // Sao chép mảng.
o2.score.push(3);
console.log(o1.score)
=> [1,2].

Có một cách khác: sao chép mọi thứ.
var o1 = {điểm:[1,2]}
var o2 = JSON.parse(JSON.stringify(o1));
o2.score.push(3);
console.log(o1.score)
=> [1,2].

Tốt nhất là nên cẩn thận để không thay đổi bản gốc, nhưng cũng có thể ngăn chặn việc bản gốc thay đổi.
var o1 = {tên:'kim'}
Đối tượng.đóng băng(o1);
o1.tên = 'lee';
console.log(o1.name);
=> Là 'kim'.

Nhưng đồ vật thì không làm như vậy.
var o1 = {điểm:[1,2]}
Đối tượng.đóng băng(o1);
o1.điểm.đẩy(3);
console.log(o1.điểm);
// [1,2,3].

Cần phải đóng băng để phòng vệ.
var o1 = {điểm:[1,2]}
Đối tượng.đóng băng(o1);
Đối tượng.đóng băng(o1.điểm);
o1.điểm.đẩy(3);
console.log(o1.điểm);
// Nó không thay đổi. Nó thậm chí còn gây ra lỗi phản đối.

3. Điều kiện tham gia bài giảng

Để tham gia khóa học này, bạn cần có những kiến thức tiên quyết sau:
(Bạn có thể học một trong hai.)

4. Tổng thời gian phát lại

Đây là lớp học kéo dài một giờ gồm 12 video.

5. Bản quyền lớp

Bài giảng này được cấp phép theo giấy phép Creative Commons và có thể xem tại liên kết bên dưới.
https://opentutorials.org/module/4075 Tôi muốn cảm ơn Life Coding vì đã chia sẻ những kiến thức quý báu.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những người muốn giảm khả năng xảy ra lỗi bằng cách xử lý dữ liệu một cách không thay đổi

  • Bất cứ ai muốn xây dựng nền tảng triển khai các kỹ thuật JS nâng cao

Cần biết trước khi bắt đầu?

  • JavaScript

  • NodeJS (tùy chọn)

Xin chào
Đây là

306,443

Học viên

8,141

Đánh giá

1

Trả lời

4.9

Xếp hạng

44

Các khóa học

Chương trình giảng dạy

Tất cả

12 bài giảng ∙ (1giờ 0phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

95 đánh giá

4.9

95 đánh giá

  • 장병훈님의 프로필 이미지
    장병훈

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    이고잉 당신은...

    • 공감님의 프로필 이미지
      공감

      Đánh giá 27

      Đánh giá trung bình 5.0

      5

      33% đã tham gia

      • leeebug님의 프로필 이미지
        leeebug

        Đánh giá 11

        Đánh giá trung bình 5.0

        5

        100% đã tham gia

        • 지현승님의 프로필 이미지
          지현승

          Đánh giá 5

          Đánh giá trung bình 5.0

          5

          100% đã tham gia

          생활코딩 최고입니다.

          • 최영원님의 프로필 이미지
            최영원

            Đánh giá 1

            Đánh giá trung bình 5.0

            5

            100% đã tham gia

            재미있는 학습이 되었습니다 감사합니다

            Miễn phí

            Khóa học khác của Egoing Lee

            Hãy khám phá các khóa học khác của giảng viên!

            Khóa học tương tự

            Khám phá các khóa học khác trong cùng lĩnh vực!