I'm not sure what are all the differences but one I have come across that you can't do in JS is to simultaneously destructure an object/array, and at the same time bind a name to the entire object/array. For instance here in Clojure we can extract the a,b,c keys from the passed map, and at the same time bind the whole map to the variable bar.
(defn foo [{:keys [a b c] :as bar}]
[bar a b c])
(foo {:a 1 :b 2 :c 3}) ;; => [{:a 1, :b 2, :c 3} 1 2 3]
in JS you can do const f = ({a,b,c}) => [???, a, b, c]
but how do you bind to the whole object as well?