Thể hiện của toán tử làm gì trong javascript?

Để làm cho các chức năng hoạt động linh hoạt hơn, các lập trình viên thường cố gắng làm cho chúng hoạt động khác nhau đối với các loại giá trị khác nhau. Một cách tốt để kiểm tra xem giá trị đã cho có thuộc về một lớp nhất định hay không bằng cách sử dụng toán tử

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9

Toán tử này kiểm tra xem có một hàm tạo được chỉ định trong nguyên mẫu của đối tượng hay không và trả về một giá trị boolean, kết quả là

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0 hoặc
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0. Trong một số phiên bản mới hơn của tiêu chuẩn JS, nó cũng có thể kiểm tra xem đối tượng có phải là một thể hiện của lớp cụ thể hay không

Instanceof toán tử

Để sử dụng toán tử này, bạn cần viết tên của đối tượng mà bạn muốn kiểm tra, theo sau nó là câu lệnh

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 và sau đó chỉ định lớp mà bạn cho rằng đối tượng đó thuộc về

Dưới đây là một ví dụ đơn giản minh họa việc sử dụng hợp lý toán tử

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9. Như bạn có thể thấy, có lớp Person và thể hiện của nó được tạo, vì vậy toán tử trả về
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0

class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
4 cũng hoạt động tốt đối với hàm tạo hàm

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true

Theo cách tương tự, bạn có thể kiểm tra xem đối tượng của mình có phải là một thể hiện của các lớp dựng sẵn như Mảng, Chuỗi, Bản đồ hoặc Đối tượng hay không. Ví dụ, trong mẫu mã tiếp theo có một mảng số và toán tử

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 cho biết nó thuộc về lớp
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
6. Hãy nhớ rằng nó cũng là một thể hiện của lớp
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
7 vì
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
6 được kế thừa từ lớp
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
7. Đó là lý do tại sao
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0 được trả lại trong cả hai trường hợp

________số 8

Làm thế nào nó hoạt động

Thông thường trong quá trình thực thi, toán tử

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 đi qua chuỗi nguyên mẫu. Tuy nhiên, hành vi này có thể được thay đổi bằng phương pháp tĩnh
array = [0, 1, 2];
console.log[array instanceof Array]; // logs true
console.log[array instanceof Object]; // logs true
2.  

Thuật toán của toán tử

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 rất đơn giản. Nó kiểm tra xem lớp có chứa phương thức
array = [0, 1, 2];
console.log[array instanceof Array]; // logs true
console.log[array instanceof Object]; // logs true
2 không. Nếu có một phương thức như vậy, toán tử sẽ chỉ trả về
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0 hoặc
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0 và đó là tất cả. Vì vậy, cách để cấu hình công việc của toán tử
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 theo cách thủ công là triển khai phương thức tĩnh
array = [0, 1, 2];
console.log[array instanceof Array]; // logs true
console.log[array instanceof Object]; // logs true
2. Đoạn mã dưới đây minh họa một trường hợp như vậy

class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
3

Từ ví dụ này, bạn có thể thấy cách

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 sẽ trả về
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0 cho bất kỳ đối tượng nào có thuộc tính
class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
31 vì hành vi đó được chỉ định trong phương thức tĩnh
class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
32.  

Hầu hết các lớp không có phương thức như vậy được triển khai. Trong những trường hợp này, toán tử

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 sử dụng logic tiêu chuẩn và kiểm tra chuỗi nguyên mẫu để xem có bất kỳ nguyên mẫu nào bằng với
class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
34 không.  

Nếu bất kỳ phép so sánh nào từ đoạn mã sau trả về

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0, thì kết quả cũng sẽ là
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0, nếu không thì sẽ trả về
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0. Bằng cách này, bạn có thể thấy toán tử này hoạt động như thế nào với tính kế thừa.  

class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
8

Sự khác biệt giữa typeof và instanceof

Cả hai toán tử

class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
38 và
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 thường được sử dụng để kiểm tra xem biến có trống hay không hoặc kiểu của nó là gì. Tuy nhiên, chúng không hoạt động theo cùng một cách. Ví dụ, khi bạn tạo một chuỗi đơn giản và kiểm tra kiểu của nó, kết quả trả về sẽ là
class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
80. Đồng thời, nếu bạn kiểm tra xem biến này có phải là một thể hiện của lớp
class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
81 hay không, bạn sẽ nhận được
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
3

Toán tử

class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
38 cho phép bạn kiểm tra xem giá trị có thuộc một trong sáu kiểu dữ liệu nguyên thủy hay không. số, chuỗi, boolean, đối tượng, hàm hoặc không xác định, trong khi
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 hoạt động trực tiếp với các lớp.  

Nó có thể gây nhầm lẫn nhưng

class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
85 không giống như
class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
86. Trong trường hợp đầu tiên, bạn làm việc với một chuỗi nguyên thủy, trong trường hợp thứ hai, có một đối tượng được tạo. Vì vậy, kết quả của
class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
87 sẽ là một
class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
88.  

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9

Do đó, bất cứ khi nào bạn làm việc với một biến nguyên thủy hoặc muốn kiểm tra loại gốc của nó - hãy sử dụng toán tử

class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
38, nếu không thì
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 là một giải pháp phù hợp. Người ta có thể nói rằng toán tử
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 tốt hơn để sử dụng với mọi thứ được tạo bằng từ khóa
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
32. Tuy nhiên, có một ngoại lệ - một chức năng. Toán tử sẽ nhận ra các hàm được tạo ngay cả bởi một khai báo thông thường như trong ví dụ bên dưới

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
2

Trong khi so sánh hai nhà khai thác, năng suất cũng quan trọng.

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
33chỉ kiểm tra loại gốc một lần khi
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 cần trải qua toàn bộ chuỗi nguyên mẫu. Ngoài ra, toán tử đầu tiên có thể trả về kiểu thực của biến trong khi toán tử thứ hai chỉ trả về một trong hai giá trị boolean. đúng hoặc sai.   

Phần kết luận

Toán tử

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 cho phép bạn kiểm tra xem đối tượng có thuộc một lớp nào đó hay không. Nó trả về
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0 nếu thuộc tính của nguyên mẫu xuất hiện ở bất kỳ đâu trong chuỗi nguyên mẫu hoặc
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
0 nếu không.  

Những người mới bắt đầu thường lẫn lộn các toán tử

function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
9 và
class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
38. Mặc dù chúng có vẻ giống nhau, nhưng khái niệm của chúng khá khác nhau.
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
33 được sử dụng khi chỉ làm việc với các biến nguyên thủy hoặc ký tự và trả về kiểu dữ liệu của chúng. Toán tử
class Person {}
let person = new Person[];
console.log[person instanceof Person]; // logs true
38 thường nhanh hơn
function Person[] {}
console.log [new Person[] instanceof Person]; // logs true
92, vì vậy đối với các tình huống khi cả hai đều có thể được sử dụng, tốt hơn hết là sử dụng toán tử đầu tiên

Thể hiện của một toán tử là gì?

Toán tử instanceof là gì? . Kết quả của hoạt động là đúng hoặc sai. Nó còn được gọi là toán tử so sánh kiểu vì nó so sánh thể hiện với kiểu. a binary operator we use to test if an object is of a given type. The result of the operation is either true or false. It's also known as a type comparison operator because it compares the instance with the type.

Thể hiện của [] là gì và tại sao nó được sử dụng?

Toán tử “instanceof” trong java được sử dụng để kiểm tra xem đối tượng có phải là một thể hiện của loại đã chỉ định [lớp hoặc lớp con hoặc giao diện] hay không . Nó còn được gọi là toán tử so sánh kiểu vì nó so sánh thể hiện với kiểu. Nó trả về true hoặc false.

Thể hiện của một lớp có nghĩa là gì trong JavaScript?

Instanceof là gì? . Nó trả về một giá trị boolean [true hoặc false]. Nếu giá trị trả về là true, thì nó chỉ ra rằng đối tượng là một thể hiện của một lớp cụ thể và nếu giá trị trả về là false thì không phải. used to check the type of an object at the run time. It returns a boolean value[true or false]. If the returned value is true, then it indicates that the object is an instance of a particular class and if the returned value is false then it is not.

Biến thể hiện trong JavaScript là gì?

Biến thể hiện. Các biến này được khai báo bên trong lớp nhưng bên ngoài phương thức, hàm tạo hoặc khối và luôn nhận giá trị mặc định . Các biến này thường được tạo khi chúng ta tạo một đối tượng và bị hủy khi đối tượng bị hủy.

Chủ Đề