¿Cuándo es RequireJS 'require call asynchronous? ¿Cuándo es sincrónico?

Utilizo RequireJS para cargar mis módulos en uno de mis proyectos. Veo en la web diferentes formas de requerir módulos usando elrequire llamada (y nodefine)

Supongamos que tengo un módulo llamado "JQuery" y me gustaría solicitarlo. Dos formas son posibles como vi en los ejemplos:

Esta:

require(["JQuery"], function($){
   $.doSomething();
})

Y esto:

var $ = require("JQuery");
$.doSomething();

Mi pregunta es si la carga es asíncrona como dice la documentación de RequireJS, ¿cómo puede funcionar la segunda convención? ¿Cómo puedo decir con certeza que$ está definido y que la primera fila se completa antes de que se ejecute la segunda fila?

Respuestas a la pregunta(3)

Su respuesta a la pregunta