Javascript doesn't "need" dependency injection because modules are objects, and you can mock those directly by replacing what they reference to. Very similar story in python. You could say people do DI in these dynamic languages without calling it DI.
Now Java and C# are different because they are compiled. You need a DI tool to do dynamic dispatch if you want to mock.