[UPDATE: Xem @ câu trả lời của John, nó có ý nghĩa hơn là tại sao một minifier js sẽ làm điều này, và nên là câu trả lời chấp nhận]
Là một khái niệm chung, đây là để tránh lỗi lập trình viên . Nếu bạn đã sửa đổi mã theo cách thủ công và đặt biến đầu tiên và không đổi thứ hai, bạn có thể vô tình nhập:
a == '40' || a = '13'
Rất tiếc! Chúng tôi chỉ đặt a
thành '13'
thay vì so sánh. Bằng cách đặt hằng số ở bên trái, chúng tôi tránh khả năng này:
'40' == a || '13' = a
Sẽ ném một ngoại lệ vì bạn không thể đặt chuỗi liên tục trên tay trái của thao tác gán.
Vì vậy, trong một số trường phái tư tưởng, cách tốt nhất là luôn đặt hằng số ở bên trái khi so sánh bình đẳng so với hằng số. Hình như việc đóng cửa theo sau sự thực hành đó.
Đây được gọi là "điều kiện yoda". Lưu ý rằng sở thích cá nhân của tôi là thực sự chỉ cần đặt hằng số ở bên phải trong hầu hết các trường hợp, bởi vì mã có xu hướng đọc tốt hơn, vì vậy tôi không nghĩ rằng sự cân bằng là đủ tốt. Nhưng tôi thấy logic đằng sau điều kiện yoda.
Nguồn
2012-02-13 06:54:40
Điều đó không giải thích tại sao máy nén sẽ làm điều đó. OT: Họ có thực sự xóa [luồng trên điều kiện Yoda] không (http://webcache.googleusercontent.com/search?q=cache:stackoverflow.com/questions/2349378/new-programming-jargon-you-coined+jargon+ đặt ra) ?! – user123444555621
Máy nén sử dụng các phương pháp hay nhất bất cứ khi nào có thể, chỉ vì có thể. (Offchance rằng ai đó chỉnh sửa phiên bản minified có thể?) –
Ngoài ra, tôi đã không nhận thức được rằng thread về điều kiện yoda. Tôi vừa nghe điều này được mô tả theo cách đó trước đây. –