Tiếp theo Thế giới JS share mọi thứ về Toán tử delete trong javascript và các ví dụ minh hoạ một cách chi tiết và đầy đủ nhất, nhằm giúp ae hiểu hơn về toán tử này. Trong bài này chúng ta có thể dùng các javascript online để chạy ví dụ nha.
Bài viết này sẽ thảo luận về toán tử delete(delete) có sẵn trong JavaScript. Delete tương đối là một toán tử ít được biết đến hơn trong JavaScript. Toán tử này được sử dụng cụ thể hơn để xóa các thuộc tính đối tượng JavaScript.
Các phương thức pop(), shift() hoặc splice() của JavaScript có sẵn để xóa một phần tử khỏi một mảng. Nhưng do có cặp key-value trong một đối tượng nên việc xóa phức tạp hơn. Lưu ý rằng, toán tử delete chỉ hoạt động trên các đối tượng chứ không phải trên các biến hoặc hàm.
Cú pháp:
delete object // or delete object.property // or delete object['property']
Toán tử này trả về true nếu nó loại bỏ một thuộc tính. Trong khi xóa thuộc tính đối tượng không tồn tại sẽ trả về giá trị đúng nhưng nó sẽ không ảnh hưởng đến đối tượng. Mặc dù trong khi cố gắng xóa một biến hoặc một hàm sẽ trả về giá trị sai .
Dưới đây là các ví dụ về Toán tử xóa.
Thí dụ:
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs let emp = { firstName: "vpsus", lastName: "Dev", salary: 40000 } console.log(delete emp.salary); console.log(emp);
Đầu ra:
true {"firstName":"vpsus","lastName":"Dev"}
Ví dụ: Giả sử một đối tượng được gọi là người có ba cặp khóa-giá trị (tức là FirstName, lastName và phone ). Bây giờ, sử dụng toán tử delete để xóa thuộc tính điện thoại sẽ trả về true .
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs let person = { firstName: "vpsus", lastName: "vn", phone: 12345 } console.log(delete person.phone); console.log(person);
Đầu ra:
Đang cập nhật hình…
Như hình trên cho thấy, xóa person.phone trả về giá trị true và ghi nhật ký đối tượng person cho thấy thuộc tính phone không còn tồn tại nữa.
Hãy thử áp dụng toán tử delete để xóa một biến và một hàm.
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs let num = 5; let sum = (a, b) => { return a + b; } console.log(delete num); //false console.log(delete sum); //false
Đầu ra:
false false
Bởi vì toán tử delete không hoạt động đối với các biến hoặc hàm, nên nó trả về false và các biến và hàm thực tế vẫn không bị ảnh hưởng.
Một lưu ý khác là toán tử này không xóa giá trị thuộc tính thay vì chính thuộc tính đó.
Thí dụ:
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs let person = { firstName: "vpsus", lastName: "vn", phone: 12345 } let phone = person.phone; console.log(delete person.phone); //true console.log(phone); //12345
Vì các đối tượng là loại tham chiếu, nên cả biến person.phone và phone sẽ đề cập đến cùng một địa chỉ bộ nhớ.
Đầu ra:
true 12345
Đầu ra cho thấy toán tử delete đã xóa thuộc tính nhưng giá trị vẫn tồn tại trên bộ nhớ.
Ngoại lệ: Có thể loại bỏ các biến toàn cục bằng cách sử dụng toán tử delete . Bởi vì các biến toàn cục là các thuộc tính của đối tượng cửa sổ và khi thao tác xóa hoạt động trên các đối tượng, nó sẽ xóa biến đó.
Thí dụ:
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs toDelete = 5; // true console.log(delete toDelete); // toDelete is not defined console.log(toDelete);
Không sử dụng từ khóa var, let hoặc const sẽ đặt biến làm biến toàn cục và nó sẽ hoạt động như một thuộc tính đối tượng.
Đầu ra:
true Uncaught ReferenceError: toDelete is not defined
Delete to Delete trả về true và cố gắng truy cập biến sau khi xóa nó sẽ đưa ra lỗi tham chiếu vì biến không được xác định nữa.
Xóa các giá trị mảng bằng cách sử dụng xóa: Các mảng JavaScript là các đối tượng sau tất cả. Vì vậy, toán tử delete có thể được sử dụng. Nhưng nó sẽ gây ra vấn đề vì sau khi xóa phần tử khỏi mảng, toán tử này sẽ hiển thị vị trí trống và nó sẽ không cập nhật độ dài của mảng.
Thí dụ:
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs let arr = [1, 2, 3] console.log(delete arr[0]); //true console.log(arr); //[empty, 2, 3]
Đầu ra:
true [2, 3]
Vì vậy, sử dụng các phương thức pop(), shift() hoặc splice() rõ ràng là cách tiếp cận tốt hơn để xóa các phần tử mảng.
Có nhiều cách khác được các nhà phát triển sử dụng, chẳng hạn như đặt giá trị của một thuộc tính đối tượng thành null hoặc undefined . Nhưng thuộc tính sẽ vẫn tồn tại trên đối tượng và một số toán tử như vòng lặp for vẫn sẽ hiển thị sự hiện diện của thuộc tính null hoặc không xác định(undefined).
Sử dụng thuộc tính delete trong vòng lặp làm chậm chương trình đáng kể. Vì vậy, phương pháp này chỉ nên được sử dụng khi thực sự cần thiết để xóa một thuộc tính đối tượng.
Trên đây là tất cả những gì về Toán tử delete trong javascript mà bạn cần biết. Nếu bạn có bất kỳ câu hỏi liên quan tới Toán tử delete, hãy chủ động liên hệ và inbox cho chúng tôi, để giúp đỡ bạn sớm nhất
Tiếp theo, hãy cùng Thế giới JS tìm hiểu thêm các kiến thức về Javascript trong các bài tiếp theo trong series học miễn phí Javascript từ cơ bản tới nâng cao.
Nếu bạn cảm thấy hữu ích và yêu thích Thế giới JS, hãy tham gia và theo dõi chúng tôi để nhận thêm nhiều kiến thức MIỄN PHÍ hơn nữa nhé:
Share to learn more than!