To detect the browser, OS, and online status of a user in JavaScript, you can use the navigator object and the window object.
To detect the browser and OS, you can use the navigator.userAgent property. This property returns a string that contains information about the user agent, which includes the browser and operating system.
Here is an example code snippet that detects the browser and OS:

const userAgent = navigator.userAgent;
const browser = (() => {
  if(userAgent.indexOf('Firefox') > -1) return 'Mozilla Firefox';
  if(userAgent.indexOf('Chrome') > -1) return 'Google Chrome';
  if(userAgent.indexOf('Safari') > -1) return 'Apple Safari';
  if(userAgent.indexOf('Opera') > -1) return 'Opera';
  if(userAgent.indexOf('MSIE') > -1) return 'Microsoft Internet Explorer';
  return 'Unknown';
})();
const os = (() => {
  if(userAgent.indexOf('Windows') > -1) return 'Windows';
  if(userAgent.indexOf('Mac') > -1) return 'Macintosh';
  if(userAgent.indexOf('Linux') > -1) return 'Linux';
  return 'Unknown';
})();

console.log(`Browser: ${browser}`);
console.log(`OS: ${os}`);

To detect the online status of a user, you can use the navigator.onLine property. This property returns a boolean that indicates whether the browser is online or offline. Here is an example code snippet that detects the online status:

const onlineStatus = navigator.onLine ? 'Online' : 'Offline';
console.log(`Online Status: ${onlineStatus}`);

To detect the speed of the browser, you can use the performance.timing object. This object provides performance timing information, including the time it takes for the browser to load the page. Here is an example code snippet that detects the speed of the browser:

if (performance && performance.timing) {
  const pageLoadTime =
  performance.timing.loadEventEnd - performance.timing.navigationStart;
  console.log(`Page Load Time: ${pageLoadTime}ms`);
}

Note:- that this measurement is not a perfect indicator of the speed of the browser, as it only measures the time it takes for the page to load, not the time it takes for the browser to execute JavaScript code.