
지옥에서 온 Git
Egoing Lee
이 수업에서는 명령어를 통해서 Git을 다루는 방법을 소개합니다.
입문
Git, 버전관리시스템
Đâ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.
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
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:
Nội dung dưới đây không được đề cập.
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.
Để 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.)
Đây là lớp học kéo dài một giờ bao gồm tổng cộng 12 video.
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.
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)
Tất cả
12 bài giảng ∙ (1giờ 0phút)
12. Lớp hoàn thiện
07:17
Tất cả
95 đánh giá
4.9
95 đánh giá
Hãy khám phá các khóa học khác của giảng viên!
Khám phá các khóa học khác trong cùng lĩnh vực!