Inflearn brand logo image
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,752 học viên

JavaScript

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

Lớp Tính bất biến JavaScript của Life Coding là bài giảng về cách xử lý dữ liệu một cách bất biến trong JavaScript. Đối với những người học biết ngữ pháp JavaScript cơ bản, chúng ta sẽ xem xét cách ngăn chặn bản gốc bị hỏng bằng cách làm cho dữ liệu trở nên bất biến.

Bài giảng này bao gồm các chủ đề sau:

  • 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 đôi một đối tượng
  • Cách sửa đổi bản sao mà không sửa đổi đối tượng ban đầu

Nội dung dưới đây không được đề cập.

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

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

Việc xử lý dữ liệu một cách bất biến có thể làm giảm đáng kể khả năng xảy ra lỗi do sự can thiệp giữa các dữ liệu. Bạn cũng có thể rất dễ dàng kiểm tra xem dữ liệu đã thay đổi hay chưa. Ngoài ra, nó là cơ sở để triển khai các kỹ thuật nâng cao 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 đoạn mã bên dưới thì bạn không cần phải học lớp này.

var n1 = 1;
var n2 = 1;
console.log(n1 === n2);
=> đúng. Tất nhiên rồi.

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

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

var o1 = {tên:'kim'}
var o2 = Object.sign({}, o1); // Sao chép o1 vào một đối tượng trống.
o2.name = 'lee';
console.log(o1.name);
=> Đây là Kim. Thay đổi o2 không ảnh hưởng đến o1. Đối với o2, o1 có thể không thay đổi.

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

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

Có nhiều cách khác nữa. Toàn bộ điều được sao chép.
var o1 = {điểm:[1,2]}
var o2 = JSON.parse(JSON.stringify(o1));
o2.score.push(3);
console.log(o1.score)
=> [1,2].

Cẩn thận không thay đổi bản gốc là tốt, nhưng cũng có thể không thay đổi bản gốc chút nào.
var o1 = {name:'kim'}
Object.freeze(o1);
o1.name = 'lee';
console.log(o1.name);
=> Đó là 'kim'.

Nhưng điều này không hoạt động đối với các đối tượng.
var o1 = {điểm:[1,2]}
Object.freeze(o1);
o1.score.push(3);
console.log(o1.score);
// Đây là [1,2,3].

Bạn cần phải đóng băng phòng thủ.
var o1 = {điểm:[1,2]}
Object.freeze(o1);
Object.freeze(o1.score);
o1.score.push(3);
console.log(o1.score);
// Không thể thay đổi. Nó thậm chí còn gây ra lỗi phản kháng.

3. Điều kiện tham gia giảng dạy

Để tham gia bài giảng này, bạn cần có những kiến ​​thức cơ bản sau:
(Bạn có thể học một trong hai.)

4. Tổng thời gian chơi

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

5. Bản quyền lớp

Bài giảng này tuân theo giấy phép CC và cũng có thể được xem tại liên kết bên dưới.
https://opentutorials.org/module/4075 Cảm ơn Life Coding đã chia sẻ kiến ​​thức hay.

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à

303,196

Học viên

7,948

Đá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á 5

      Đá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

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

            Khóa học khác của egoing5162

            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!