Javascript Basic | Toán tử 3 ngôi (Ternary operator)

Xem thêm
Lập Trình JavaScript Cơ Bản | Basic JavaScript programming

Toán tử 3 ngôi

Toán tử 3 ngôi, hay còn được gọi là conditional operator, là một toán tử trong JavaScript giúp bạn viết một biểu thức điều kiện ngắn gọn. 

Cú pháp của toán tử 3 ngôi

condition ? expression_if_true(value1) : expression_if_false(value2);

Nghĩa là, nếu điều kiện là đúng (true), thì biểu thức sau dấu ? sẽ được thực hiện; ngược lại, nếu điều kiện là sai (false), thì biểu thức sau dấu : sẽ được thực hiện.

Hay nói cách khác là nếu condition là đúng (hay là true) thì toán tử sẽ trả về value 1 còn nếu là sai (hay là false) thì nó sẽ trả về giá trị của value 2

Dưới đây là một ví dụ:

var age = 20;
var isAdult = (age >= 18) ? "Người trưởng thành" : "Người chưa trưởng thành";

console.log(isAdult);

Trong ví dụ này, nếu age lớn hơn hoặc bằng 18, thì isAdult sẽ nhận giá trị là "Người trưởng thành", ngược lại nếu age nhỏ hơn 18, thì isAdult sẽ nhận giá trị là "Người chưa trưởng thành".

Điều kiện nối tiếp (Conditional chains)

Toán tử điều kiện tuân theo suy dẫn phải, tức là nó có thể được gọi “nối tiếp” theo cách sau đây, tương tự như với If – else If – else If – else nối tiếp nhau:

Nếu như trước đây ta sẽ có:

var exp = 2;
var salary;
if ( exp < 1 ) {
   salary = 1000;
} else if ( exp < 2 ) {
   salary = 1500;
} else if ( exp < 3 ) {
   salary = 2000;
} else {
   salary = 3000;
}
console.log(salary) // 2000

thì bây giờ chỉ còn:

var exp = 2;
var salary = exp < 1 ? 1000 : 
                 exp < 2 ? 1500 :
                      exp < 3 ? 2000 : 3000
console.log(salary) // 2000

Ví dụ

Hàm kiểm tra đủ tuổi bỏ phiếu

Để vượt qua thử thách này bạn cần tạo hàm getCanVoteMessage, hàm này có 1 tham số là age. Trong trường hợp từ 18 tuổi trở lên hàm sẽ trả về Bạn có thể bỏ phiếu, ngược lại hàm trả về Bạn chưa được bỏ phiếu.

Sử dụng toán tử 3 ngôi trong bài này, không sử dụng if/else bạn nhé.

function getCanVoteMessage(age){
return age>18?'Bạn có thể bỏ phiếu':'Bạn chưa được bỏ phiếu';
}
console.log(getCanVoteMessage(18)) // 'Bạn có thể bỏ phiếu'
console.log(getCanVoteMessage(15)) // 'Bạn chưa được bỏ phiếu'

Nhận xét

Mới hơn Cũ hơn