最近出てきた「User Agent Client Hints」による判定。今のところChromeとEdgeのみ
現在「試験運用版の機能」なので、Chromeのデフォルト設定を変更します。
・最初に「chrome://flags/」から、「Experimental Web Platform features」を有効にします。
・Chrome79以降だと使え、81ではまだ試験有運用中。85ぐらいから本格運用開始の予定。
・まだ、試験運用中の仕様なので、文法や取れる情報が変わっていく可能性もあるので注意。
↓↓有効ならここに表が表示されます。
↑↑

競合ブラウザの対応見込み(2020/2/6現在)
ブラウザ 対応方針
Edge 公式サポートの見込み
Firefox UserAgent文字列の凍結は公式サポート。ただしUser-Agent Client Hintsは実装せずNavigatorUADataインターフェースを介したJS API呼び出しにのみ対応する方針
Safari Safariはすでに部分的にUserAgent文字列を凍結している。かつてはUserAgent文字列を完全に凍結しようとしたが、様々な問題が発生して完遂には至らなかった模様。User-Agent Client Hintsへの対応方針は不明


従来の「navigator.userAgent」による判定。

ua-parser.js」でOS、ブラウザ情報取得


platform.js」でOS、ブラウザ情報取得


ライブラリ使わず ブラウザ情報取得(stackoverflow.comより引用)


他、ブラウザのから取れる情報(navigator等)


参考サイト
UserAgent判定JSライブラリ「UAParser.js」と「Platform.js」の比較