Có sự khác biệt quan trọng nào (ngữ nghĩa, liên quan đến hiệu suất, v.v.) giữa (1) và (2) không?(obj || {}) vs Đối tượng (obj)
var obj = obj || {};
var obj = Object(obj);
Context. Đầu tiên là cách tôi đã chia sẻ các biến trên các mẫu của Django và các tệp js của tôi. Tôi chỉ đi qua một phần trong Rauschmayer 2014 ("Chức năng cho chuyển đổi Boolean, Number, String, và Object", pg 79.), Nơi ông được mô tả Object(obj)
như sau:
obj
nếuobj
là một đối tượng,{}
nếuobj
làundefined
hoặcnull
,- [bọc nguyên thủy] nếu
obj
là một giá trị nguyên thủy.
Cho rằng ngữ nghĩa (rất chính thức) (đặc biệt là hai mệnh đề đầu tiên), dường như tôi có thể sử dụng (2) ở bất cứ nơi nào chúng tôi sử dụng (1), nhưng tôi không chắc chắn sẽ có.
Rauschmayer, Axel (2014) Speaking JavaScript (miễn phí để đọc trực tuyến).
'1' là thành ngữ phổ biến,' 2' không phải là. Để làm cho mã của bạn dễ hiểu đối với hầu hết các lập trình viên, hãy gắn bó với cú pháp thông thường. – Barmar