- vừa được xem lúc

Object trong Javascript

0 0 27

Người đăng: LongNguyen

Theo Viblo Asia

Xin chào mọi người,

Hôm nay mình sẽ giới thiệu về kiểu dữ liệu Object trong Javascript. Các khái niệm cơ bản, kèm các keyword và link để mọi người có thể tìm hiểu thêm.

Không để mọi người chờ lâu, cùng mình bắt đầu nào.

1. Định nghĩa

  • Object (đối tượng) là kiểu dữ liệu dùng để thể hiện một đối tượng thực tế trong đời thực.
  • Object bao gồm các thuộc tính và hành động được lưu trữ qua cặp key-value trong Javasscript.

Ví dụ: Đối tượng car trong thực tế có các thuộc tính (properties) như: name, model, weight, color,... và các hành động: start, drive, brake, stop...

Code Javascript

2. Khai báo object

  • Sử dụng {} để khai báo.
  • Object nhiều thuộc tính (properties) và phương thức (methods). Được thể hiện qua cặp key-value chứa tên và giá trị.
  • Key là tên duy nhất.
  • Value là giá trị có thể là kiểu dữ liệu bất kỳ:number, string, boolean, object, array

Ví dụ:

3. Truy cập thuộc tính của object

Có 2 cách:

  • objectName.propertyName
  • objectName["propertyName"]

Ví dụ:

4. Truy cập phương thức (method) của object

  • objectName.methodName()

Ví dụ:

5. Thêm và sửa thuộc tính(property) trong object

Add:

  • objectName.propertyName = new value
  • objectName["propertyName"] = new value Update:
  • objectName.newPropertyName = value
  • objectName[“new property name"] = value

Ví dụ:

6. Xóa thuộc tính(property) trong object

  • Delete objectName. propertyName

Ví dụ:

7. Phân biệt kiểu tham trị và tham chiếu

  • Tham trị (value type): Giá trị của biến được lưu trữ trực tiếp ở một vùng nhớ được gọi là stack

Ví dụ: biến a và b sẽ được lưu trữ ở 2 vùng nhớ. Nên khi ta thay đổi giá trị của a thì b sẽ không đổi.

  • Tham chiếu: (Reference type): Giá trị của biến được lưu trữ ở một vùng nhớ stack và địa chỉ biến được lưu trữ riêng ở một vùng nhớ Heap. Từ địa chỉ vùng nhớ lưu ở heap ta sẽ tìm được giá trị lưu ở stack. Hiểu nôm na là địa chỉ và giá trị lưu ở 2 nơi khác nhau.

Ví dụ: person là kiểu object nên thuộc kiểu tham chiếu. Nên khi ta thay đổi giá trị name của object person thì chỉ thay đổi giá trị name lưu ở stack, còn địa chỉ lưu ở heap vẫn không đổi, object person không đổi địa chỉ. Nên sau khi đi qua function change reference thì giá trị name đã thay đổi.

8. Object destructuring

9. Sử dụng spread để clone object

Bình thường với kiểu tham trị thì việc tạo ra 1 biến mới và gán giá trị của biến hiện tại rất đơn giản:

const name = 'John';
const name2 = name;

Nhưng đối với object là kiểu tham chiếu thì việc clone ra 1 object mới phức tạp hơn. Nếu sử dụng toán tử = để gán giá trị thì object mới sẽ có cùng địa chỉ vùng nhớ với object cũ. Điều này không chính xác. Mục đích ban đầu là tạo ra 1 object mới.

const person = { firstName: "John", lastName : "Doe", id : 5566
};
const person2 = person;
person2.firstName = 'John 2';
console.log(person.firstName ); //John 2

Như ở ví dụ trên person 2 và person có cùng địa chỉ vùng nhớ head nên khi ta thay đổi giá trị của person thì person2 cũng thay đổi và ngược lại.

Thay vào đó để clone object ta dùng kỹ thuật spread(…)

const clonePerson = {
...person
};
console.log(clonePerson.firstName);

Tham khảo:

https://www.w3schools.com/js/js_objects.asp

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object

http://net-informations.com/faq/general/valuetype-referencetype.htm

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 500

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 414

- vừa được xem lúc

Một số phương thức với object trong Javascript

Trong Javascript có hỗ trợ các loại dữ liệu cơ bản là giống với hầu hết những ngôn ngữ lập trình khác. Bài viết này mình sẽ giới thiệu về Object và một số phương thức thường dùng với nó.

0 0 136

- vừa được xem lúc

Tìm hiểu về thư viện axios

Giới thiệu. Axios là gì? Axios là một thư viện HTTP Client dựa trên Promise.

0 0 117

- vừa được xem lúc

Imports và Exports trong JavaScript ES6

. Giới thiệu. ES6 cung cấp cho chúng ta import (nhập), export (xuất) các functions, biến từ module này sang module khác và sử dụng nó trong các file khác.

0 0 93

- vừa được xem lúc

Bài toán đọc số thành chữ (phần 2) - Hoàn chỉnh chương trình dưới 100 dòng code

Tiếp tục bài viết còn dang dở ở phần trước Phân tích bài toán đọc số thành chữ (phần 1) - Phân tích đề và những mảnh ghép đầu tiên. Bạn nào chưa đọc thì có thể xem ở link trên trước nhé.

0 0 229