Engine do Browser

O JavaScript possui um 'interpretador' do código escrito, normalmente dentro das tags <script>Código</script>

Note que se o código for chamado antes do 'objeto' por ele acessado ser renderizado no browser irá dar erro de execução do script. Por esse motivo precisamos colocar a execução do código num ponto onde a página inteira já tenha sido renderizada. Os melhores pontos são :
1 - O evento body onLoad. Exemplo <body onload="myFunction()">
2 - Dentro de uma tag na última linha antes da tag /body. Ex: <script>FuncaoX();</script>

As informações a seguir são sobre o seu browser e foram obtidas a partir do JavaScript...







O script que gerou o código acima foi feito em um javascript antigo e foi o seguinte :
        <div id="readout"></div><br /><br />

        <div id="msg2"></div><br /><br />

        <script>
            navigator.sayswho = (
                function () {
                    var ua = navigator.userAgent, tem,
                        M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
                    if (/trident/i.test(M[1])) {
                        tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
                        return 'IE ' + (tem[1] || '');
                    }
                    if (M[1] === 'Chrome') {
                        tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
                        if (tem != null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
                    }
                    M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
                    if ((tem = ua.match(/version\/(\d+)/i)) != null) M.splice(1, 1, tem[1]);
                    return M.join(' ');
                }
            )();

            //console.log(navigator.sayswho); // outputs: `Chrome 62`
            //alert(navigator.sayswho); // outputs: `Chrome 62`, 'IE 11', 'Edge 17'
            document.getElementById("msg2").innerHTML = navigator.sayswho
        </script>


Hoje o resultado seria o seguinte :


O código foi o seguinte:


     Hoje o código seria o seguinte :<br />
     <div class="col-3">
      <script>document.write(navigator.appVersion);</script>
     </div>

Este resultado foi possível porque hoje em dia padronizaram alguns recursos do browser e com isto algumas funcionalidades passaram a ser mais confiáveis em todos os browsers.