Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这个React组件返回字符串';0';_Javascript_Arrays_Reactjs - Fatal编程技术网

Javascript 为什么这个React组件返回字符串';0';

Javascript 为什么这个React组件返回字符串';0';,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,当我编写这段代码时,我希望我的React组件不会显示任何内容。但是,它显示“0”。为什么会这样 从“React”导入React; 从“react dom”导入react dom; 常量应用=()=>{ 常量对象={ 数组:[] } 返回( {object.array&&object.array.length&&( 试验 )} ); } render(React默认情况下忽略布尔值,但不忽略数字 即使array为空,它仍然是一个真实的值。如果array.length等于0,则不会渲染段落,因为0是

当我编写这段代码时,我希望我的React组件不会显示任何内容。但是,它显示“0”。为什么会这样

从“React”导入React;
从“react dom”导入react dom;
常量应用=()=>{
常量对象={
数组:[]
}
返回(
{object.array&&object.array.length&&(
试验

)} ); }
render(

React默认情况下忽略
布尔值,但不忽略数字

即使
array
为空,它仍然是一个真实的值。如果
array.length
等于
0
,则不会渲染段落,因为
0
是一个虚假的值,但仍然会渲染它(
array.length
-0),因为基本上
0
是一个数字

我建议您将
array.length
计算为一个布尔值,这样它就不会被渲染

{object.array && !!object.array.length && (

因为
object.array&&object.array.length&&…
将计算为第一个'falsy'值,如果所有其他值都是'truthy',则计算为最后一个值。
object.array.length
大概是0,所以得到0。
0
是falsy,但它被认为是
truthy
,为什么?@Vencovsky哪里被认为是
tru你的
?哦,现在我明白了,它不是真的,但它返回它的值,即
0