UPDATE: добавил connection.type для определения типа соединения, помимо его скорости (effectiveType). connection.type не работает на десктопе.
Так:
let connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
let connectionSpeed = connection.effectiveType;
let connectionType = connection.type || "No mobile";