关于#jquery#的问题:获取不到往input里面输入的值

获取不到往input里面输入的值
<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="jquery-3.4.1.min.js" type="text/javascript" charset="utf-8"></script>
    </head>

    <body>
            <input id="keyword" type="text" value="">
            <div id="contain">
                <ul id="list"></ul>
            </div>
        
        <script type="text/javascript">
            $(function(){
                let i =$("#keyword").val();
                console.log(i);
            })
        </script>
    </body>

</html>

运行结果不报错,但是没有值
我在网上找到了一个代码,可以成功获取到值,为什么前面的那个代码就获取不到值呀?
<script>
            $('#search-box').on('input', function() {
                var searchValue = $(this).val();
                $.ajax({
                    url: 'data.json',
                    dataType: 'json',
                    success: function(data) {
                        console.log(searchValue);
                    }
                });
            });
        </script>

其实是有获取到的,你给的初始值是空,所以获取到的是空值。而且你的代码逻辑跟下面那段代码也不同。你的是网页加载后立刻获取输入框的值(并且只执行一次),而下面那段代码是给输入框绑定一个input事件,只要输入框的内容发生变化就会执行回调函数