Hướng dẫn javascript check object type - loại đối tượng kiểm tra javascript


Như bạn đã biết, chúng ta có thể tạo một đối tượng của bất kỳ chức năng nào bằng cách sử dụng từ khóa mới. Đôi khi bạn muốn biết loại đối tượng để thực hiện một số hành động trên nó. Sử dụng toán tử loại để lấy loại đối tượng hoặc biến trong JavaScript.new keyword. Sometimes you want to know the type of an object to perform some action on it. Use the typeof operator to get the type of an object or variable in JavaScript.

var str = "this is string";

typeof str; // returns string

Toán tử typeof cũng trả về loại đối tượng được tạo bằng từ khóa "mới".

var obj = new String();
var str = "this is string";
            
typeof obj; // returns object
typeof str; // returns string

Như bạn có thể thấy trong ví dụ trên, toán tử typeof trả về các loại khác nhau cho một chuỗi theo nghĩa đen và một đối tượng chuỗi.

Theo cách tương tự, bạn có thể tìm thấy loại của bất kỳ biến nào.

function myFunc(){
    "HelloWorld");
}

var obj = new myFunc ();
var bool = false;
var num = 100;
var jsObj = {};
var undef;
var nullObj = null;

typeof obj;
typeof bool;
typeof num;
typeof jsObj;
typeof undef;
typeof nullObj;    

Bạn có thể so sánh loại bằng toán tử ===.

var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

Toán tử loại có thể trả về các loại sau:

  • sợi dây
  • con số
  • Boolean
  • chưa xác định
  • sự vật
  • hàm số


Tạm kết

Như vậy trong bài viết này chúng ta đã cùng nhau tìm hiểu qua về các vấn đề về Object trong Javascript. Có thể chưa thật sự đầy đủ nhưng nó sẽ giúp các bạn có cái nhìn tổng quan hơn về Object trong Javascript. Bạn thấy thế nào về JS, hãy đưa ra những ý kiến trong quá trình sử dụng JS nhé. Nếu các bạn thấy bài viết hữu ích hãy rate 5* và share cho mọi người tham khảo!

Hãy để lại comment để mình có thể hoàn thiện bản thân hơn trong tương lai. Cám ơn các bạn! 

Như các bạn đã biết, Javascript có 5 kiểu dữ liệu 

function myFunc(){
    "HelloWorld");
}

var obj = new myFunc ();
var bool = false;
var num = 100;
var jsObj = {};
var undef;
var nullObj = null;

typeof obj;
typeof bool;
typeof num;
typeof jsObj;
typeof undef;
typeof nullObj;    

1, 
function myFunc(){
    "HelloWorld");
}

var obj = new myFunc ();
var bool = false;
var num = 100;
var jsObj = {};
var undef;
var nullObj = null;

typeof obj;
typeof bool;
typeof num;
typeof jsObj;
typeof undef;
typeof nullObj;    

2, 
function myFunc(){
    "HelloWorld");
}

var obj = new myFunc ();
var bool = false;
var num = 100;
var jsObj = {};
var undef;
var nullObj = null;

typeof obj;
typeof bool;
typeof num;
typeof jsObj;
typeof undef;
typeof nullObj;    

3, 
function myFunc(){
    "HelloWorld");
}

var obj = new myFunc ();
var bool = false;
var num = 100;
var jsObj = {};
var undef;
var nullObj = null;

typeof obj;
typeof bool;
typeof num;
typeof jsObj;
typeof undef;
typeof nullObj;    

4 và 
function myFunc(){
    "HelloWorld");
}

var obj = new myFunc ();
var bool = false;
var num = 100;
var jsObj = {};
var undef;
var nullObj = null;

typeof obj;
typeof bool;
typeof num;
typeof jsObj;
typeof undef;
typeof nullObj;    

5 và còn 1 kiểu khác nữa đó là 
function myFunc(){
    "HelloWorld");
}

var obj = new myFunc ();
var bool = false;
var num = 100;
var jsObj = {};
var undef;
var nullObj = null;

typeof obj;
typeof bool;
typeof num;
typeof jsObj;
typeof undef;
typeof nullObj;    

6 (kiểu dữ liệu phức hợp). Kiểu 
function myFunc(){
    "HelloWorld");
}

var obj = new myFunc ();
var bool = false;
var num = 100;
var jsObj = {};
var undef;
var nullObj = null;

typeof obj;
typeof bool;
typeof num;
typeof jsObj;
typeof undef;
typeof nullObj;    

6 là kiểu được sử dụng nhiều nhất vì tính linh hoạt cực kỳ mạnh mẽ của nó trong việc xử lý dữ liệu. Chi tiết thế nào thì chúng ta cùng tìm hiểu nhé.

Object là gì?khóa - giá trị, tương tự như bản đồ, từ điển, hay hash-table trong ngôn ngữ lập trình khác.

  • Objects trong JavaScript, cũng tương tự như những ngôn ngữ khác, có thể so sánh như đối tượng trong đời thường. Khái niệm của objects trong JavaScript có thể được hiểu như những đối tượng thực tế trong đời thực.
  • Trong JavaScript, một object là một thực thể độc lập, với thuộc tính và kiểu. Lấy cái tách làm ví dụ. Cái tách là một object có những thuộc tính của riêng nó. Một cái tách có màu sắc, thiết kế, trọng lượng, chất liệu tạo ra nó, vân vân... Tương tự như vậy, JavaScript objects có thể có những thuộc tính định nghĩa nên đặc tính của nó.khóa - giá trị chứa tên và giá trị
  • Đối tượng trong Javascript là một tập hợp các cặp khóa - giá trị, tương tự như bản đồ, từ điển, hay hash-table trong ngôn ngữ lập trình khác.
  • Đối tượng là một tập hợp các thuộc tính

Thuộc tính là một cặp khóa - giá trị chứa tên và giá trị

Tên thuộc tính là một giá trị duy nhất có thể bị ép buộc vào một chuỗi và trỏ đến một giá trị

Giá trị thuộc tính có thể là bất kỳ giá trị nào, bao gồm các đối tượng khác hoặc các hàm, được liên kết với tên/khóa

  • Đối tượng (Object) và những điều cần biết
  • 1. Tạo đối tượng
  • Các bạn có 3 cách để khai báo đối tượng trong Javascript: 

Sử dụng từ khóa {}

// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })

Sử dụng từ khóa
function myFunc(){
    "HelloWorld");
}

var obj = new myFunc ();
var bool = false;
var num = 100;
var jsObj = {};
var undef;
var nullObj = null;

typeof obj;
typeof bool;
typeof num;
typeof jsObj;
typeof undef;
typeof nullObj;    

8

Sử dụng phương thức static

Dưới đây là ví dụ về tạo ra đối tượng rỗng trong Js:

get = object.property;
object.property = set;

2. Nhận và thiết đặt thuộc tính (Get and Set Properties)

let hello;
let world;

// Old way 
const obj = {
    hello: hello,
    world: world
}

// Modern way 
const obj = {
    hello,
    world,
}

Bây giờ chúng ta đã có 1 đối tượng trống, chúng ta cần thêm các thuộc tính vào nó bằng cách sử dụng các trình truy cập (accessors).

const x = 'khoa';

const obj = {
  [x]: 07
}

obj.khoa // 07

Tên thuộc tính hợp lệ bao gồm chữ cái, số, kí tự,.. có thể ép thành một chuỗi, nhưng không được sử dụng các từ dành riêng như

function myFunc(){
    "HelloWorld");
}

var obj = new myFunc ();
var bool = false;
var num = 100;
var jsObj = {};
var undef;
var nullObj = null;

typeof obj;
typeof bool;
typeof num;
typeof jsObj;
typeof undef;
typeof nullObj;    

9,
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

0,
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

1, .v.v.

delete obj.hello;
delete obj.world;

Kể từ ES6, chúng ta có một cách viết tắt thuận tiện để thiết lập các thuộc tính:

Sử dụng một biến hoặc biểu thức làm tên thuộc tính bằng cách đặt nó trong dấu ngoặc [] - đây được gọi là thuộc tính được tính toán

Thường các phương thức được định nghĩa qua một hàm khởi tạo đối tượng. Ví dụ:

//Hàm khởi tạo đối tượng
function person(name, age) {
  this.name = name;
  this.age = age;
  this.changeName = function (name) {
    this.name = name;
  }
}

//Tạo đối tượng
var p = new person("Khoa", 19);

p.changeName("Vân");
//Giờ p.name bằng "Vân"

Các phương thức bạn cũng có thể định nghĩa bên ngoài hàm khởi tạo. Ví dụ:

var obj = new String();
var str = "this is string";
            
typeof obj; // returns object
typeof str; // returns string

0

4. Setter và Getter

Một thuộc tính của của đối tượng còn thiết lập nó là hàm 

var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

3 hoặc 
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

4, nếu là 
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

3 nó chỉ được gọi qua toán tử gán giá trị cho nó, nếu là 
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

4 thì chỉ được gọi khi truy cập lấy giá trị thuộc tính. 
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

3 hoặc 
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

4, nếu là 
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

3 nó chỉ được gọi qua toán tử gán giá trị cho nó, nếu là 
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

4 thì chỉ được gọi khi truy cập lấy giá trị thuộc tính.

Hàm setter định nghĩa bằng cách cho thêm 

var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

7, hàm getter định nghĩa bằng cách cho thêm 
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

8 
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

7, hàm getter định nghĩa bằng cách cho thêm 
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

8

var obj = new String();
var str = "this is string";
            
typeof obj; // returns object
typeof str; // returns string

1

Trong trường hợp muốn định nghĩa 

var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

9 trong hàm tạo đối tượng thì bạn cần định nghĩa theo nguyên tắc thêm một thuộc tính vào đối tượng đã có với lệnh 
// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })
0
var str = "this is str";
var num = 100;

if (typeof str === "string"){
    alert("str is a string type");
}
if (typeof num === "number"){
    alert("num is a number type");
}

9 trong hàm tạo đối tượng thì bạn cần định nghĩa theo nguyên tắc thêm một thuộc tính vào đối tượng đã có với lệnh 
// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })
0

var obj = new String();
var str = "this is string";
            
typeof obj; // returns object
typeof str; // returns string

2

Ví dụ trên định nghĩa lại trong hàm tạo:

var obj = new String();
var str = "this is string";
            
typeof obj; // returns object
typeof str; // returns string

3

5. Sử dụng this để tham chiếu tới đối tượng

Trong một đối tượng thông thường,

// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })
1 đề cập đến đối tượng mà nó được định nghĩa. Ví dụ:

var obj = new String();
var str = "this is string";
            
typeof obj; // returns object
typeof str; // returns string

4

6. So sánh Objects

Trong JavaScript những object là kiểu tham chiếu. Hai đối tượng tách biệt không bao giờ bằng nhau, thậm chí nếu chúng có cùng những thuộc tính. Chỉ khi nó so sánh với chính nó thì kết quả mới là true.

Ví dụ:

var obj = new String();
var str = "this is string";
            
typeof obj; // returns object
typeof str; // returns string

5
var obj = new String();
var str = "this is string";
            
typeof obj; // returns object
typeof str; // returns string

6
var obj = new String();
var str = "this is string";
            
typeof obj; // returns object
typeof str; // returns string

7

Constructor là gì?

// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })
2 là một phương thức đặc biệt dùng để khởi tạo 1 object và được tạo ở trong
// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })
3.

Cú pháp:

var obj = new String();
var str = "this is string";
            
typeof obj; // returns object
typeof str; // returns string

8

Ví dụ:

var obj = new String();
var str = "this is string";
            
typeof obj; // returns object
typeof str; // returns string

9

Constructor là gì?

// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })
4 ở trong class thì sẽ gây ra lỗi 
// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })
5.

// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })
2 là một phương thức đặc biệt dùng để khởi tạo 1 object và được tạo ở trong
// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })
3.

Cú pháp:

Chỉ có duy nhất 1 phương thức đặc biệt tên là "constructor" ở trong class. Có nhiều hơn 1 phương thức 

// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })
4 ở trong class thì sẽ gây ra lỗi 
// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })
5.

function myFunc(){
    "HelloWorld");
}

var obj = new myFunc ();
var bool = false;
var num = 100;
var jsObj = {};
var undef;
var nullObj = null;

typeof obj;
typeof bool;
typeof num;
typeof jsObj;
typeof undef;
typeof nullObj;    

0

Một constructor có thể sử dụng từ khóa // literal const dog = { } // constructor const cat = new Object(); // static method const horse = Object.create({ })6 để gọi đến constructor của class cha.

Nếu bạn không chỉ định 1 phương thức constructor thì constructor mặc định sẽ được sử dụngBạn thấy thế nào về JS, hãy đưa ra những ý kiến trong quá trình sử dụng JS nhé. Nếu các bạn thấy bài viết hữu ích hãy rate 5* và share cho mọi người tham khảo!

Một ví dụ nữa sử dụng phương thức

// literal
const dog = { }

// constructor
const cat = new Object();

// static method
const horse = Object.create({ })
4: