[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.33,0:00:03.80,Default,,0000,0000,0000,,Tôi đã viết một chương trình để cung cấp cho các bạn những thông tin lý thú về Dialogue: 0,0:00:03.80,0:00:07.47,Default,,0000,0000,0000,,Winston, nhưng không quá nhiều vì Winston muốn mình Dialogue: 0,0:00:07.47,0:00:11.87,Default,,0000,0000,0000,,bí ẩn một chút. Đấy là Winston nói thế. Vậy ta cùng xem Dialogue: 0,0:00:11.87,0:00:15.33,Default,,0000,0000,0000,,tôi đã viết chương trình như thế nào nhé. Tôi đã tạo một số biến ở trên cùng để lưu trữ Dialogue: 0,0:00:15.33,0:00:20.03,Default,,0000,0000,0000,,một số thông tin về cậu ấy. Biến đầu tiên chứa một số - tuổi – biến thứ hai chứa Dialogue: 0,0:00:20.03,0:00:23.96,Default,,0000,0000,0000,,một chuỗi – mắt – biến thứ ba chứa một mảng chuỗi, Dialogue: 0,0:00:23.96,0:00:27.91,Default,,0000,0000,0000,,đó là những sở thích của cậu ấy, và hai biến cuối cùng chứa Dialogue: 0,0:00:27.91,0:00:31.57,Default,,0000,0000,0000,,các chuỗi về quê hương của cậu. Sau đó Dialogue: 0,0:00:31.57,0:00:35.94,Default,,0000,0000,0000,,ở dưới này, tôi đã viết từng dòng bằng lệnh text và chỉ sử dụng tên biến. Dialogue: 0,0:00:35.94,0:00:39.70,Default,,0000,0000,0000,,Và tất nhiên đối với mảng, tôi phải tiếp cận từng phần tử trong mảng Dialogue: 0,0:00:39.70,0:00:43.45,Default,,0000,0000,0000,,bằng ký hiệu ngoặc. Được rồi. Bây giờ, Dialogue: 0,0:00:43.45,0:00:48.64,Default,,0000,0000,0000,,toàn bộ 5 biến này đang mô tả những thông tin về cùng một người: Winston. Dialogue: 0,0:00:48.64,0:00:51.60,Default,,0000,0000,0000,,Nhưng các biến không biết điều đó. Dialogue: 0,0:00:51.60,0:00:55.50,Default,,0000,0000,0000,,Các bạn biết đấy, trong Javascript, khi muốn Dialogue: 0,0:00:55.50,0:00:59.29,Default,,0000,0000,0000,,lưu trữ nhiều mẩu thông tin liên quan, ta còn có một phương pháp hiệu quả hơn, Dialogue: 0,0:00:59.29,0:01:03.12,Default,,0000,0000,0000,,thú vị hơn, ta gọi đó là đối tượng. Dialogue: 0,0:01:03.12,0:01:06.80,Default,,0000,0000,0000,,Nói cách khác, thay vì 5 biến, ta có thể chỉ sử dụng một biến duy nhất Dialogue: 0,0:01:06.80,0:01:11.62,Default,,0000,0000,0000,,lưu trữ tất cả những thông tin trên, thật kỳ diệu. Dialogue: 0,0:01:11.62,0:01:15.17,Default,,0000,0000,0000,,Ta cùng thử với thông tin của Winston nhé. Đầu tiên, ta khai biến Dialogue: 0,0:01:15.17,0:01:18.84,Default,,0000,0000,0000,,và gọi nó là Winston. Sau đó Dialogue: 0,0:01:18.84,0:01:23.40,Default,,0000,0000,0000,,ta mở ngoặc nhọn – hãy đảm bảo đó là ngoặc nhọn, không phải ngoặc vuông – Dialogue: 0,0:01:23.40,0:01:27.11,Default,,0000,0000,0000,,và một dấu chấm phẩy. Vậy là ta đã tạo xong một đối tượng Dialogue: 0,0:01:27.11,0:01:31.05,Default,,0000,0000,0000,,nhưng vẫn chưa có thông tin nào bên trong cả. Dialogue: 0,0:01:31.91,0:01:35.67,Default,,0000,0000,0000,,Như vậy, muốn thêm thông tin, ta phải thêm thuộc tính. Dialogue: 0,0:01:35.67,0:01:41.28,Default,,0000,0000,0000,,Mỗi thuộc tính là một chìa khóa và một giá trị. Ví dụ, tuổi sẽ là age: 19. Dialogue: 0,0:01:41.28,0:01:43.79,Default,,0000,0000,0000,,Được rồi. còn với mắt, ta sẽ thêm một Dialogue: 0,0:01:43.79,0:01:48.04,Default,,0000,0000,0000,,dấu phẩy, sau đó là eyes: “black”. Ổn rồi, Dialogue: 0,0:01:48.04,0:01:52.74,Default,,0000,0000,0000,,hiện tại Winston đã có 2 thuộc tính trong đối tượng. Dialogue: 0,0:01:52.74,0:01:55.61,Default,,0000,0000,0000,,Về sở thích, ta có thể nhập likes: và sau đó Dialogue: 0,0:01:55.61,0:02:00.08,Default,,0000,0000,0000,,chỉ việc copy paste ở trên đây xuống... và Dialogue: 0,0:02:00.08,0:02:04.00,Default,,0000,0000,0000,,quá đẹp. Ta cùng quan sát nhé. Winston có 3 thuộc tính. Dialogue: 0,0:02:04.00,0:02:07.53,Default,,0000,0000,0000,,Mỗi thuộc tính là một chìa khóa, nằm ở phía tay phải, Dialogue: 0,0:02:07.53,0:02:12.80,Default,,0000,0000,0000,,và một giá trị, nằm ở phía tay trái. Dialogue: 0,0:02:12.80,0:02:15.63,Default,,0000,0000,0000,,Đối với chìa khóa, ta nên tuân theo các quy tắc tương tự như Dialogue: 0,0:02:15.63,0:02:20.10,Default,,0000,0000,0000,,tên biến Javascript. Không dấu cách, bắt đầu với một chữ cái, đại loại thế. Dialogue: 0,0:02:20.59,0:02:22.96,Default,,0000,0000,0000,,Đối với giá trị, nó có thể là bất cứ loại giá trị nào Dialogue: 0,0:02:22.96,0:02:27.12,Default,,0000,0000,0000,,ta đã từng gặp. Có thể là số, có thể là chuỗi, có thể là mảng. Dialogue: 0,0:02:27.12,0:02:33.37,Default,,0000,0000,0000,,Thậm chí nó có thể là boolean, vì vậy hiển nhiên ta có thể thêm isCool: true. Dialogue: 0,0:02:34.13,0:02:38.40,Default,,0000,0000,0000,,Trên thực tế, giá trị còn có thể là một đối tượng khác nữa. Ta có Dialogue: 0,0:02:38.40,0:02:42.71,Default,,0000,0000,0000,,BirthCity và BirthState. Đó hoàn toàn là những mẩu thông tin về cùng một thứ, Dialogue: 0,0:02:42.71,0:02:46.62,Default,,0000,0000,0000,,đó là một địa điểm. Tôi nghĩ sẽ hợp lý hơn Dialogue: 0,0:02:46.62,0:02:51.04,Default,,0000,0000,0000,,nếu ta lưu trữ nó dưới dạng đối tượng. Tôi sẽ thêm một chìa khóa khác, nơi sinh, Dialogue: 0,0:02:51.04,0:02:54.84,Default,,0000,0000,0000,,còn với giá trị tôi lại mở ngoặc nhọn Dialogue: 0,0:02:54.84,0:02:58.38,Default,,0000,0000,0000,,và nhập chìa khóa cho thành phố. Dialogue: 0,0:02:58.38,0:03:02.29,Default,,0000,0000,0000,,“Mountain View”, sau đó đến bang, Dialogue: 0,0:03:02.29,0:03:06.77,Default,,0000,0000,0000,,“California”. Tuyệt vời! Bây giờ các bạn có thể thấy, thực sự ta có thể Dialogue: 0,0:03:06.77,0:03:10.48,Default,,0000,0000,0000,,lưu trữ rất nhiều thông tin bên trong một đối tượng. Dialogue: 0,0:03:11.03,0:03:15.46,Default,,0000,0000,0000,,Được rồi. Sau khi có được đối tượng đẹp đẽ này với toàn bộ thông tin về Winston, Dialogue: 0,0:03:15.46,0:03:18.78,Default,,0000,0000,0000,,ta thử xóa những biến riêng lẻ Dialogue: 0,0:03:18.78,0:03:23.07,Default,,0000,0000,0000,,không liên quan gì đến nhau nhé. Được rồi. Dialogue: 0,0:03:23.07,0:03:27.04,Default,,0000,0000,0000,,Uh oh! Chúng ta có một lỗi. Đó là bởi Dialogue: 0,0:03:27.04,0:03:30.74,Default,,0000,0000,0000,,các lệnh text đang tham chiếu biến cũ. Ta phải cập nhật chúng Dialogue: 0,0:03:30.74,0:03:34.50,Default,,0000,0000,0000,,để sử dụng thông tin thay thế từ đối tượng. Dialogue: 0,0:03:34.50,0:03:38.22,Default,,0000,0000,0000,,Trước hết ta phải chú thích lại ba biến cuối cùng để có thể Dialogue: 0,0:03:38.22,0:03:41.87,Default,,0000,0000,0000,,thực hiện từng cái một. Được rồi. Hiện tại Dialogue: 0,0:03:41.87,0:03:46.40,Default,,0000,0000,0000,,ta đang nhìn thấy WinstonAge. Cái ta cần làm là thay thế nó, ta sẽ nhập Dialogue: 0,0:03:46.40,0:03:50.29,Default,,0000,0000,0000,,winston, vì đó là tên biến. Hãy chú ý nếu ta Dialogue: 0,0:03:50.29,0:03:53.83,Default,,0000,0000,0000,,để nguyên như vậy, nó sẽ thông báo object object. Ghê lắm. Dialogue: 0,0:03:53.83,0:03:57.37,Default,,0000,0000,0000,,Javascript thông báo ta đang cố gắng biến nguyên Dialogue: 0,0:03:57.37,0:04:02.11,Default,,0000,0000,0000,,một đối tượng thành một giá trị chuỗi. Nhưng thay vào đó, ta chỉ muốn Dialogue: 0,0:04:02.11,0:04:06.13,Default,,0000,0000,0000,,tiếp cận age trong đó thôi. Vì vậy ta sẽ đưa Dialogue: 0,0:04:06.13,0:04:11.06,Default,,0000,0000,0000,,một dấu chấm, sau đó nhập khóa thuộc tính, đó là “age”. Dialogue: 0,0:04:11.06,0:04:14.90,Default,,0000,0000,0000,,Tada! Ta đã có age. Ta gọi đó là “ký hiệu chấm”, Dialogue: 0,0:04:14.90,0:04:18.28,Default,,0000,0000,0000,,đây là vị trí ta nhập tên biến cho đối tượng, theo sau là một dấu chấm, Dialogue: 0,0:04:18.28,0:04:21.79,Default,,0000,0000,0000,,và khóa thuộc tính. Được rồi, bây giờ Dialogue: 0,0:04:21.79,0:04:26.24,Default,,0000,0000,0000,,ta có thể tiếp tục rồi. Ta sẽ xóa chú thích này đi, và thay vì Winston Dialogue: 0,0:04:26.24,0:04:29.88,Default,,0000,0000,0000,,eyes, ta sẽ nhập winston.eyes, còn với Dialogue: 0,0:04:29.88,0:04:34.07,Default,,0000,0000,0000,,cái này, ta nhập winston.likes. Dialogue: 0,0:04:34.07,0:04:37.74,Default,,0000,0000,0000,,kế đến là winston.likes[1], Dialogue: 0,0:04:37.74,0:04:42.50,Default,,0000,0000,0000,,cuối cùng, nó hơi phức tạp hơn một chút vì Dialogue: 0,0:04:42.50,0:04:45.45,Default,,0000,0000,0000,,đó là đối tượng bên trong đối tượng. Ta sẽ nhập Dialogue: 0,0:04:45.45,0:04:48.78,Default,,0000,0000,0000,,winston, rồi chấm, birthplace, Dialogue: 0,0:04:48.78,0:04:53.29,Default,,0000,0000,0000,,nhưng nếu làm như vậy thì đó vẫn là một đối tượng, vì thế ta sẽ thêm chấm, Dialogue: 0,0:04:53.29,0:04:57.46,Default,,0000,0000,0000,,city. Được rồi, ở đây ta nhập... winston, Dialogue: 0,0:04:57.46,0:05:01.57,Default,,0000,0000,0000,,chấm, birthplace, chấm, state. Dialogue: 0,0:05:01.57,0:05:05.79,Default,,0000,0000,0000,,Tada! Thật thú vị vì ta có thể tiếp cận những thông tin Dialogue: 0,0:05:05.79,0:05:09.42,Default,,0000,0000,0000,,bên trong đối tượng. Dialogue: 0,0:05:10.86,0:05:13.92,Default,,0000,0000,0000,,Tuyệt vời. Như các bạn có thể thấy, Dialogue: 0,0:05:13.92,0:05:17.60,Default,,0000,0000,0000,,đối tượng là một phương pháp hiệu quả giúp lưu trữ nhiều mẩu thông tin Dialogue: 0,0:05:17.60,0:05:21.41,Default,,0000,0000,0000,,liên quan đến nhau về một đối tượng nào đó, và có thể tiếp cận sau đó. Dialogue: 0,0:05:21.41,0:00:00.00,Default,,0000,0000,0000,,Chỉ cần tiếp tục tìm hiểu, các bạn sẽ thấy đổi tượng tuyệt vời như thế nào!