json
and js
are two different types of response and they are defined as different MIME types in Rails
Mime::Type.register "text/javascript", :js, %w( application/javascript application/x-javascript )
Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest )
Even if Json can be considered a subset of JavaScript, not all JavaScript responses are actually Json responses.
You might want to respond with Json and Js in the same action.
For instance, you might have an action that responds with Json to an API call and with JavaScript (perhaps using RJS) to an internal Ajax call.