Xem thêmLậ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