Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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 什么';str.indexOf(var&;var)的目的是什么?_Javascript_Slickgrid - Fatal编程技术网

Javascript 什么';str.indexOf(var&;var)的目的是什么?

Javascript 什么';str.indexOf(var&;var)的目的是什么?,javascript,slickgrid,Javascript,Slickgrid,我在一个库中发现我正在使用这段代码: item[column.field].indexOf(columnFilters[columnId] && columnFilters[columnId]) === -1) 我想知道将相同的值传递两次给indexOf的目的是什么。或者这只是一个错误,我可以纠正它 Library:(live)如果你像这样只写一次indexOf(columnFilters[columnId])如果你像这样只写一次indexOf(columnFilters[co

我在一个库中发现我正在使用这段代码:

item[column.field].indexOf(columnFilters[columnId] && columnFilters[columnId]) === -1)
我想知道将相同的值传递两次给indexOf的目的是什么。或者这只是一个错误,我可以纠正它


Library:(live)

如果你像这样只写一次indexOf(columnFilters[columnId])如果你像这样只写一次indexOf(columnFilters[columnId])那是一样的,坦白地说,这几乎肯定没有任何意义
columnFilters[columnId]&&columnFilters[columnId]
实际上与
columnFilters[columnId]
相同,只是
columnFilters[columnId]
可能会被计算两次(如果它是错误的)。除非
columnFilters
中有一个名为
columnId
的访问器属性具有副作用,
&&
在那里完全没有意义。(如果是这样的话,如果结果是错误的,它将产生两次副作用。)


&&
计算其左操作数,如果它是假操作数,则将该值作为其结果;如果左侧操作数对truthy求值,
&&
对右侧操作数求值并将该值作为其结果。因此,您可以看到为什么在这种情况下它毫无意义,除非它被用于访问器的副作用,在这种情况下,它只是…一个坏主意。:-)

坦白说,这几乎肯定没有任何意义
columnFilters[columnId]&&columnFilters[columnId]
实际上与
columnFilters[columnId]
相同,只是
columnFilters[columnId]
可能会被计算两次(如果它是错误的)。除非
columnFilters
中有一个名为
columnId
的访问器属性具有副作用,
&&
在那里完全没有意义。(如果是这样的话,如果结果是错误的,它将产生两次副作用。)


&&
计算其左操作数,如果它是假操作数,则将该值作为其结果;如果左侧操作数对truthy求值,
&&
对右侧操作数求值并将该值作为其结果。因此,您可以看到为什么在这种情况下它毫无意义,除非它被用于访问器的副作用,在这种情况下,它只是…一个坏主意。:-)

我可以看到
blah.indexOf(columnFilters&&columnFilters[columnId])==-1
在将columnFilters挖掘到它的一个属性/索引之前,验证它是否存在非常有用。“也许你打错了。”“詹姆斯:好的,是的,我是那个项目的维护者。”。我会把它拿走的,没有任何意义。这是一个示例,而不是核心代码,而且该代码的检查力度没有核心代码那么大。@BenMcIntyre谢谢,我只是想知道这是否有魔力;)这是开源项目的本质:-)代码是从不同的来源提交的,并经过不同程度的审查。我可以看到
blah.indexOf(columnFilters&&columnFilters[columnId])===-1
在将其挖掘到某个属性/索引之前验证columnFilters是否存在非常有用。“也许你打错了。”“詹姆斯:好的,是的,我是那个项目的维护者。”。我会把它拿走的,没有任何意义。这是一个示例,而不是核心代码,而且该代码的检查力度没有核心代码那么大。@BenMcIntyre谢谢,我只是想知道这是否有魔力;)这是开源项目的本质:-)代码是从不同的来源提交的,并经过不同程度的审查