Windows 10、モニターサイズ1920 x 1080でそれぞれの数値を検証してみました。
上の数値がフルスクリーンで、下の数値が最大化(スクロールバーやツールバーなどを含む)です。

window.innerWidth
x
window.innerHeight
window.outerWidth
x
window.outerHeight
$(window).width()
x
$(window).height()
$(document).width()
x
$(document).height()
Firefox 49.0 1920 x 1079
1920 x 917
1920 x 1080
1936 x 1056
1903 x 1079
1903 x 917
1903 x 1079
1903 x 917
chrome 53.0.2785.116 m 1920 x 1080
1920 x 974
1904 x 1064
1920 x 1040
1903 x 1080
1903 x 974
1903 x 1080
1903 x 974
IE 11 1920 x 1079
1920 x 985
1920 x 1080
1936 x 1056
1903 x 1079
1903 x 985
1903 x 1079
1903 x 985
IE 10 1920 x 1079
1920 x 985
1920 x 1080
1936 x 1056
1903 x 1079
1903 x 985
1920 x 1079
1920 x 985
IE 9 1920 x 1079
1920 x 985
1920 x 1080
1936 x 1056
1903 x 1079
1903 x 985
1920 x 1079
1920 x 985
IE 8 undefined undefined 1899 x 1075
1899 x 981
1920 x 1079
1920 x 985

まず高さについてですが、ツールバーやスクロールバーを含めた高さが必要になるケースはあまりないと思われるので、IE 8以上に対応していてIE全バージョンで誤差のない$(document).height()を使っておけば間違いなさそうです。
IE 8を切るならばwindow.innerHeight、$(window).height()、$(document).height()の中から気分で選べます。

横幅はスクロールバーを含めたい場合とそうでない場合があるのでちょっと厄介です。
スクロールバーを含めるとCSSのメディアクエリやvwと合致しますし、コンテンツ領域との比較でなんかしたいときはスクロールバーを除いた横幅が必要になってきます。
それに加え、IE 8への対応によっても選択が変わってきます。

IEとスクロールバーを条件にまとめてみました。

スクロールバーを含める スクロールバーを含めない
IE 9以上対応 window.innerWidth x $(document).height() $(window).width() x $(document).height()
IE 8以上対応 window.innerWidth x $(document).height()
※IE 8のみ$(document).width()

jQueryでこんな感じで実装してます。

jQuery(function($) {
    var winW, conW, conH;
    var resizeTimer = false;
    $(window).on('load resize orientationchange', function() {
        if (resizeTimer !== false)
            clearTimeout(resizeTimer);
        
        resizeTimer = setTimeout(function() {
            if (typeof (winW = window.innerWidth) === 'undefined')
                winW = $(document).width();
            conW = $(window).width();
            conH = $(document).height();
        }, 200);
    });
});

winWはスクロールバーを含めた横幅で、conWはコンテンツ領域の横幅。
conHはコンテンツ領域の高さで、スクロールバーを含む数値は取得しない。
window.innerWidthはIE 8が対応していないので、代わりに$(document).width()を使うようにしてます。