hashtable search in JavaScript
Looks good. I'm not sure what feedback you are looking for, but here's a little:


use const where you can, instead of let
the naming is a little confusing at times, hash vs. key. Maybe if you call the hash function calcHash then you can call the value it returns a hash and not have to call it a bucketKey... or maybe the function should be calcBucketKey.
it seems like the scoping of arr may be off... especially in expandArr. I believe the argument is going to override the global definition, so I don't think that the last line that re-assigns arr is going to change the global, but rather a local variable going out of scope.
consider using the modulo operator to loop around the array. It can save some checks against the array size.