Kiểm tra rỗng trong javascript

Nội dung bài viết

Video học lập trình mỗi ngày

Check object empty js. Một bài viết trình bày 6 cách để kiểm tra object rỗng trong JavaScript dành cho những bạn mới tập làm quen lập trình với JavaScript thông qua object. Ở bài viết này thì bạn sẽ được giới thiệu về object trong JavaScript thông qua những cách làm sử dụng es5 và es6.

Về cơ bản là object trong javascript là một tập hợp các key-value. Mỗi cặp key/value đều được gọi là property. Object trong javascript được sử dụng rộng rãi trong mỗi ứng dụng, thậm chí trong database. Chính vì vậy object trong js được ưu ái và được hỗ trợ nhiều method. Nếu bạn là người mới học lập trình javascript thì nên tìm hiểu thêm về Object Methods trong JavaScript đó là tất cả những gì một developer cần phải biết. Trong tips javascript chúng tôi đã có nhiều bài viết về object trong javascript, bạn có thể dành thời gian 5 phút là có thể up level về object.

Kiểm tra object rỗng JavaScript

Đây là một tình huống thường xuyên gặp trong lập trình nhất là những bạn mới học lập trình javascript. Và ở đây chúng ta sẽ sử dụng es5 và ES6 để check object empty js. 

# 1 - Kiểm tra object rỗng javascript với es5

const a = {} function isEmptyObject(obj){ return JSON.stringify(obj) === '{}'; } //output: console.log(isEmptyObject(a)) //true;

# 2 - Kiểm tra object rỗng javascript

const a = {} function isEmpty(obj) { for(var key in obj) { if(obj.hasOwnProperty(key)) return false; } return true; } //output: console.log(isEmpty(a)) //true;

# 3 - Kiểm tra object rỗng trong javascript

const a = {} console.log(Object.getOwnPropertyNames(a).length === 0); // true;

# 4 - Kiểm tra object rỗng javascript với object.keys()

const a = {} console.log(Object.keys(a).length === 0);// true

# 5 - Kiểm tra object rỗng javascript với es6 object.values()

const a = {} console.log(Object.values(a).length === 0); //true

# 6 - Kiểm tra object rỗng javascript trong es6 object.values()

const a = {} console.log(Object.entries(a).length === 0); //true;

Một bài viết đơn giản nhưng có thể giúp được những bạn mới học lập trình javascript. Ở đây có nhiều tips and tricks javascript bạn có thể dạo qua.

Tôi đã thực hiện một số nghiên cứu về những gì sẽ xảy ra nếu bạn chuyển một giá trị không phải là chuỗi và không rỗng / null cho hàm kiểm tra. Như nhiều người biết, (0 == "") là đúng trong javascript, nhưng vì 0 là một giá trị và không trống hoặc null, nên bạn có thể muốn kiểm tra nó.

Hai hàm sau chỉ trả về true cho các giá trị không xác định, null, rỗng / khoảng trắng và false cho mọi thứ khác, chẳng hạn như số, boolean, đối tượng, biểu thức, v.v.

function IsNullOrEmpty(value) { return (value == null || value === ""); } function IsNullOrWhiteSpace(value) { return (value == null || !/\S/.test(value)); }

Các ví dụ phức tạp hơn tồn tại, nhưng đây là những đơn giản và cho kết quả phù hợp. Không cần kiểm tra không xác định, vì nó được bao gồm trong kiểm tra (value == null). Bạn cũng có thể bắt chước hành vi C # bằng cách thêm chúng vào Chuỗi như thế này:

String.IsNullOrEmpty = function (value) { ... }

Bạn không muốn đặt nó trong nguyên mẫu Chuỗi, vì nếu thể hiện của lớp String là null, nó sẽ báo lỗi:

String.prototype.IsNullOrEmpty = function (value) { ... } var myvar = null; if (1 == 2) { myvar = "OK"; } // could be set myvar.IsNullOrEmpty(); // throws error

Tôi đã thử nghiệm với mảng giá trị sau. Bạn có thể lặp nó qua để kiểm tra các chức năng của mình nếu nghi ngờ.

// Helper items var MyClass = function (b) { this.a = "Hello World!"; this.b = b; }; MyClass.prototype.hello = function () { if (this.b == null) { alert(this.a); } else { alert(this.b); } }; var z; var arr = [ // 0: Explanation for printing, 1: actual value ['undefined', undefined], ['(var) z', z], ['null', null], ['empty', ''], ['space', ' '], ['tab', '\t'], ['newline', '\n'], ['carriage return', '\r'], ['"\\r\\n"', '\r\n'], ['"\\n\\r"', '\n\r'], ['" \\t \\n "', ' \t \n '], ['" txt \\t test \\n"', ' txt \t test \n'], ['"txt"', "txt"], ['"undefined"', 'undefined'], ['"null"', 'null'], ['"0"', '0'], ['"1"', '1'], ['"1.5"', '1.5'], ['"1,5"', '1,5'], // valid number in some locales, not in js ['comma', ','], ['dot', '.'], ['".5"', '.5'], ['0', 0], ['0.0', 0.0], ['1', 1], ['1.5', 1.5], ['NaN', NaN], ['/\S/', /\S/], ['true', true], ['false', false], ['function, returns true', function () { return true; } ], ['function, returns false', function () { return false; } ], ['function, returns null', function () { return null; } ], ['function, returns string', function () { return "test"; } ], ['function, returns undefined', function () { } ], ['MyClass', MyClass], ['new MyClass', new MyClass()], ['empty object', {}], ['non-empty object', { a: "a", match: "bogus", test: "bogus"}], ['object with toString: string', { a: "a", match: "bogus", test: "bogus", toString: function () { return "test"; } }], ['object with toString: null', { a: "a", match: "bogus", test: "bogus", toString: function () { return null; } }] ];

7 hữu ích 1 bình luận chia sẻ

Chủ đề