The more C/C++ you know the better armed you will be to tackle the interop situation. It isn't well documented, because if someone don't understand how a C/C++ compiler and linker work, it is difficult to explain how to effectively use the interop feature set to them. This is why projects like furthark and nimterop, etc... came about - to ease some of this and to help automate the maintenance of bindings.
C++ is more difficult than C. JS is actually really easy...