Y a-t-il un avantage ou un inconvénient particulier, en termes de consommation de mémoire JavaScript, à utiliser location.href = url plutôt que location.assign(url) ?
NON
Il y a exactement zéro différence.
La raison en est simple. Chaque fois que votre navigateur charge une nouvelle page, il démarre une nouvelle 'VM' Javascript avec les scripts pour cette page s'exécutant dans cette VM. En exécutant l'une ou l'autre des instructions de votre question, vous demandez au navigateur de charger une nouvelle page, ce qui signifie détruire la VM actuelle (et libérer toute mémoire qui lui est associée) et charger une VM complètement nouvelle pour la nouvelle page.
Si l'on excepte les bogues bizarres des navigateurs, l'effet net est toujours le même. Vos scripts sont exécutés dans une toute nouvelle VM avec exactement la même consommation de mémoire.
Si vous travaillez avec l'objet de localisation dans le navigateur et que vous voulez pouvoir exécuter ce code sur Node JS (par exemple pour des tests ou pour du code isométrique), vous pouvez utiliser ulocation
une implémentation universelle/isométrique de l'objet Location. Divulgation complète : je suis l'auteur de ce paquet.