是的,我意识到“includes()”不一定用于比较。我也意识到这可能是一个非常大的问题。但是,在我的特定情况下,我使用它来区分数组中的特定字符串是否包含文本的标识子字符串。简而言之,我有两个返回大小为3的数组的函数。我可以选择将空白参数放在一个中,例如更改:
my2ndFunction("identifying string",1000,true);
为:
my2ndFunction("useless parameter","identifying string",1000,true);
这样做的目的是通过这样的检查区分这两个函数(上面的那个和3个参数中的另一个):
if(arguments.length == 4){}
else{}
或者,简单地将参数保留为3会更快,并执行此操作:
if(arguments[0].includes("identifying")){}
else{}
另外,如果不清楚,请随时编辑我提出问题的特定方式。
答案 0 :(得分:0)
我相信两者都没问题,这取决于你的功能的用例。
如果您使用的是第一个(==),则只测试函数参数的数量,即使您的第四个参数不是“识别”对象,它也会起作用。 如果你传递的另一种类型不是“识别”,那么就不会引发错误。
另一方面,使用includes()将测试你的第一个参数是否是一个“识别”对象,如果你只传递三个参数,它将起作用!!
这取决于你的使用案例,你应该注意你的电话;否则,您将浪费时间来确定代码无法正常工作的原因。