2014-06-20 17 views
7

Tôi đã sử dụng typeof foo !== 'undefined' để kiểm tra tham số tùy chọn trong hàm javascript, nhưng nếu tôi muốn giá trị này là true hoặc false mọi lúc, đơn giản nhất hoặc nhanh nhất hoặc triệt để nhất đường? Nó có vẻ như nó có thể được đơn giản hơn thế này:Đặt giá trị mặc định cho tham số boolean trong hàm javascript

function logBool(x) { 
    x = typeof x !== 'undefined' && x ? true : false; 
    console.log(x); 
} 

var a, b = false, c = true; 
logBool(a); // false 
logBool(b); // false 
logBool(c); // true 

Trả lời

15

Bạn có thể bỏ qua ternary, và đánh giá "không không x", ví dụ !!x.

Nếu x không xác định, !x là đúng, vì vậy !!x trở thành sai một lần nữa. Nếu x là đúng, !x là sai nên !!x là đúng.

function logBool(x) { 
    x = !!x; 
    console.log(x); 
} 

var a, b = false, c = true; 
logBool(a); // false 
logBool(b); // false 
logBool(c); // true 
+0

Ahhh hoàn hảo, chính xác những gì tôi đang tìm kiếm, cảm ơn. – jrode

+0

ai đó hãy bảo vệ câu trả lời này :) –

Các vấn đề liên quan