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