Tôi đang sử dụng jQuery 1.7.1Ví dụ về toán tử ternary JavaScript với hàm
Tôi chỉ bắt đầu sử dụng toán tử ternary JavaScript để thay thế câu lệnh if/else đơn giản. Tôi đã làm rất thành công ở nhiều nơi. Tôi đã rất ngạc nhiên khi tôi thực hiện thành công một công việc khác khi tôi nghĩ chắc chắn nó sẽ không, nhưng tôi vẫn cố gắng.
Dưới đây là báo cáo kết quả ban đầu:
function updateItem() {
$this = $(this);
var IsChecked = $this.hasClass("IsChecked");
if (IsChecked == true){
removeItem($this);
} else {
addItem($this);
}
}
Đây là cùng một chức năng sử dụng các nhà điều hành ternary:
function updateItem() {
$this = $(this);
var IsChecked = $this.hasClass("IsChecked");
(IsChecked == true) ? removeItem($this) : addItem($this);
}
Tôi rất ngạc nhiên vì tất cả các ví dụ tôi thấy đang được sử dụng đã được chỉ đơn thuần là thiết lập các biến như thế này :
x = (1 < 2) ? true : false;
Câu hỏi của tôi là việc sử dụng này có "bình thường" hay không và nó sẽ hoạt động trong hầu hết các phiên bản của JavaScript? Nó sẽ thất bại ở đâu? Có sử dụng ít rõ ràng hơn cho nó?
CẬP NHẬT - Cảm ơn lời khuyên "thế giới thực"!
Tôi đang sử dụng này như chức năng của tôi:
function updateItem() {
$this = $(this);
$this.hasClass("IsChecked") ? removeItem($this) : addItem($this);
}
Điều đó là bình thường và nó sẽ hoạt động tốt .. Trong gen ral, khả năng đọc là khó khăn khi sử dụng các toán tử ternary nhưng trong trường hợp của bạn nó có vẻ tốt. –
Hmm .... bạn cũng có thể làm điều này vì cả hai đều chấp nhận cùng một đối số '(IsChecked? RemoveItem: addItem) ($ this)'. Tuy nhiên, để trả lời câu hỏi của bạn, có điều này là bình thường và không có gì sai với việc sử dụng các toán tử ternary miễn là chúng không làm giảm khả năng bảo trì hoặc khả năng đọc trong một tình huống cần thiết. http://jsfiddle.net/vsB3f/ –
'if ($ this.hasClass (" IsChecked ")) removeItem ($ this); else addItem ($ this) 'là cách thích hợp. Toán tử ternary không có nghĩa là đối với các trường hợp như thế này nhưng đối với những thứ như 'foo (isChecked? 'Bar': meow());' (nghĩa là khi bạn quan tâm đến "giá trị trả về" của bất cứ thứ gì bạn làm trong các khối thì/else) – ThiefMaster