Javascript 显式布尔转换

Javascript 显式布尔转换,javascript,Javascript,我有一个变量,要么设置为某个值,要么未定义。如果变量定义为elsefalse,我希望传递给函数true。以下是函数: function f(areRowsSelectable){...} 你会做以下哪一项 f(v); f(v?true:false); 还是别的什么?我通常使用双重否定(这意味着应用两次)进行显式布尔转换: !!v 示例: !!'test' // true !!'' // false !!0 // false !!1 // true !!null // false !!u

我有一个变量,要么设置为某个值,要么未定义。如果变量定义为else
false
,我希望传递给函数
true
。以下是函数:

function f(areRowsSelectable){...}
你会做以下哪一项

f(v);


f(v?true:false);

还是别的什么?

我通常使用双重否定(这意味着应用两次)进行显式布尔转换:

!!v
示例:

!!'test' // true
!!'' // false
!!0 // false
!!1 // true
!!null // false
!!undefined // false
!!NaN // false
或者,布尔(v)也可以工作。

我将使用“typeOf”保护方法

它不接受“truthy”参数,因此它取决于您的函数是否可以使用它

测试
与的答案基本相同,但他的答案返回“truthy”,而我的答案只接受
布尔真

var测试=[
//填充字符串
"测试",,
//空字符串
'',
//数字空
0,
//数字填充
1.
//空的
无效的
//完全未定义
,
//未定义
未定义,
//非数字数值
楠,,
//布尔真
真的
];
对于(var t=0;t}
“如果变量定义为false,我希望传递给函数true”->我认为OP实际上要求“truthy转换”。