Code completion is generally a feature of compiled languages. Within a compiled language, it is predetermined what methods an object will have, so it's very feasible for an IDE to show you options.
This is much harder in a language like javacsript. Consider the following code
a = {}
a.foo = function(){ console.log("test1");};
a.bar = function(){ console.log("test2");};
a.bar();
you would need a different autocomplete at every line of that code depending on what functions had been added to a.
You do get a benefit in an interpreted language that you don't have in compiled languages that you can have a real-time interpreter.
If you install node (or open the console in your browser) you can have an interactive prompt that you can write code in at the command line. In that instance you do get autocompete because there is actually a live running instance of the software.
There is a tradeoff here. You don't get as much help remembering function names while writing in an editor, but it is also very handy to be able to type "at,b".split(",");
in the command line and immediately see what the result is.