It doesn't have useful types for a lot of low-level abstractions; take, for example, all the stuff hanging off of stdenv -- if I'm trying to get nixpkgs up and running for a new C compiler that's neither GCC nor Clang, for example, it'd be really nice to know what all attributes need to be set for that. Instead, this ends up being a multi-day exploration through the nixpkgs source, where it turns out that (undocumentedly) the compiler must be named either gcc or clang...
So like JavaScript
The Nix language is basically just JSON with lambda functions and variables. (Modulo some random irrelevant syntax differences.)