Có 3 cách để kiểm tra "không null". Đề nghị của tôi là sử dụng Strict Not Version.
1. Nghiêm không phải phiên bản
if (val !== null) { ... }
Phiên bản không nghiêm ngặt sử dụng "Thuật toán so sánh bình đẳng nghiêm ngặt" http: //www.ecma-i Intl.org/ecma-262/5.1/#sec-11.9.6 . Các !==có hiệu suất nhanh hơn, so với các !=nhà khai thác vì Strict Bình đẳng So sánh thuật toán không định kiểu giá trị.
2. Không nghiêm ngặt Không phải phiên bản
if (val != 'null') { ... }
Phiên bản không nghiêm ngặt sử dụng "Thuật toán so sánh bình đẳng trừu tượng" http: //www.ecma-i Intl.org/ecma-262/5.1/#sec-11.9.3 . Nó !=có hiệu suất chậm hơn so với !==toán tử vì các giá trị đánh giá thuật toán so sánh bằng thuật toán trừu tượng.
3. Phiên bản không gấp đôi
if (!!val) { ... }
Phiên bản Double Not !!có hiệu suất nhanh hơn so với cả Phiên bản không nghiêm ngặt !==và Phiên bản không nghiêm ngặt !=( https://jsperf.com/tfm-not-null/6 ). Tuy nhiên, nó sẽ đánh máy các giá trị "Falsey" như undefinedvà NaNthành Sai ( http: //www.ecma-i Intl.org/ecma-262/5.1/#sec-9.2 ) có thể dẫn đến kết quả không mong muốn và nó có khả năng đọc kém hơn vì nullkhông được tuyên bố rõ ràng.