Let me give some context for this.
We originally added the JS Function block as a way for people to access browser features that we hadn't yet implemented in Snap!, such as media computation support that keeps growing since HTML5. There's nothing wrong with this practice, and there's nothing wrong with asking questions of the form "Snap! doesn't have primitives for the such-and-such new browser feature; can you help me make a library in JS?" in the forum.
What we don't like is when people use JS Function to write in JS control structures that do exist in Snap!, such as FOR loops. Every once in a long while people do projects that aren't fast enough in Snap!, such as real-time computation and display of the Mandelbrot or Julia sets, and so they write the inner loops in JS, and that makes us sad because Snap! wasn't fast enough for them but doesn't make us angry. (It happens much less often since we implemented hyperblocks, which are super fast!)
The problem with talking about JS in the forum is that we are desperately trying to get people beyond the dozen JS programmers here to use the forum, so that it really serves Snap! users of all levels of expertise, and we fear that when the forum fills with JS code that scares people away. (What really makes us furious is when someone posts a real question about how to do something in Snap!, something that can be done perfectly well in Snap!, and some kid replies with "you can just do that in JS" or the like.)
The canonical JS Function blocks are one-liners:
...which really don't help you much in learning how to program in JS. If that's your goal, you should bite the bullet and do it in Khan Academy or w3school or whatever, where you write the entire program in JS.