Nhìn giữa dòng đầu tiên của mã trong tập tin JS được rút gọn và unminified Bootstrap, có một sự chênh lệch ngay lập tức:Tại sao bộ chỉnh sửa Javascript chuyển đổi === thành ==?
// bootstrap.js
if (typeof jQuery === 'undefined') { ... }
vs
// bootstrap.min.js
if("undefined"==typeof jQuery)...
(Xem cho chính mình: bootstrap.js và bootstrap.min.js)
Tôi nhầm lẫn lý do tại sao điều này được cho phép. Sự hiểu biết của tôi (có lẽ là ngây thơ) là ===
luôn đạt được hiệu suất và thường xuyên ngăn các kết quả không mong muốn (ví dụ so sánh sai với 0 hoặc ""
). Nó sẽ có vẻ rằng những lợi ích nhỏ trong các tập tin bị mất trong hiệu suất và tiềm năng cho kết quả sai lầm. Có ai có thể làm sáng ở đây không?
'typeof' luôn trả về một chuỗi, vì vậy' === 'là không cần thiết. Bộ khai thác hoặc một số bộ xử lý khác mà tệp đã được chạy qua có thể đã nhận ra điều này. Không có tiềm năng cho một kết quả không chính xác, và ngay cả khi dòng này đã chạy thường xuyên, đủ để trở thành một nút cổ chai, bất kỳ sự khác biệt hiệu suất sẽ được JITted đi. – user2357112
Mọi người đều trả lời mà không hiểu đầy đủ câu hỏi. – ndugger
@NickDugger không đúng; câu hỏi khá rõ ràng. Lợi thế hiệu suất của '===' chỉ có liên quan khi các toán hạng không cùng loại. – Pointy