Updated 04/29/2020
The recent analysis pointed out that V8 may be optimizing the array includes calls. In order to achieve more expected results, it is suggested to assign to a variable and use it. The updated version shows Object address as the fastest, followed by Set has, with Array includes trailing in performance (based on my system/browser).
While I still maintain my original point about testing assumptions when making micro-optimizations, it is important to ensure the validity of your tests ;)
Original
Despite the common expectation that Object address and Set has would have better performance than Array includes, benchmarks against Chrome show otherwise.
In my tests with Chrome, Array includes significantly outperformed the other methods.
Local testing with Node yielded more anticipated results where Object address performed the best, Set has came close behind, and Array includes was slightly slower than both.
The key takeaway here is that if you are considering micro-optimizations, it is advisable to benchmark instead of assuming what might work best for your specific scenario. Ultimately, implementation plays a crucial role, as indicated by your question. Therefore, optimizing for the target platform is essential.
Here are the results obtained:
Node (12.6.0):
ops for Object address 7804199
ops for Array includes 5200197
ops for Set has 7178483
Chrome (75.0):
https://i.sstatic.net/PRLv6.png