美文网首页
01-预解释

01-预解释

作者: Young_Blood | 来源:发表于2016-07-27 09:49 被阅读12次
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>预解释</title>
    </head>
    <body>
        <pre>
            <script type="text/javascript">
                // js中数据类型:
                // 基本数据类型
                // number string boolean null undefined
                //        var num = 12;
                // 引用数据类<a型
                // object :{} [] /^$/ Dale
                // function
                //        var obj = {name:"珠峰培训",age:7};
                //        function fu() {
                //            console.log("勿忘初心方得始终");
                //        }
                // 1.当浏览器加载html的时候 首先会提供一个恭全局JS代码执行的环境 -> 全局作用域(global/window)
                // obj.age = 8 ; 首先通过地址xxxfff000找到对应的空间,然后把空间中的age属性名对应的属性值修改为8
                console.log(fn) // 把正割函数的定义部分(函数本身)在控制台输出
                console.log(fu()) // 把当前函数执行的返回结果(return后面写的是啥,返回值就是啥,如果没有return,默认返回值是undefined)
                // 2.预解释(变量提声)
                // 在当前的作用域当中, JS代码执行之前 浏览器首先会默认的把所有带 var 和 function 的进行提前的声明或者定义
                // 2.1.理解声明和定义
                // var num = 12;
                // 声明 (declare); var num;   -> 告诉浏览器在全局作用域中有一个num的变量了 如果一个变量只是声明了 没有赋值 默认值是undefined
                // 定义 (define);  num = 12 ; -> 给我们的变量进行赋值
                // 对于带var和function关键字的在于解释的时候操作还是不一样的
                // var -> 在与解释的时候只是提前的声明
                // function -> 在预解释的时候提前的声明 + 定义都完成了
                // 预解释只发生在当前的作用域下 , 例如开始只对Window下进行预解释,只有函数执行的时候才会对函数中的进行预解释
                console.log(num); // undefined
                var number = 12;
                var obj = {name: "LDH", age: 7};
                console.log(num); // 12;
                fn(100, 200); // 可以在上面执行,因为预解释的时候声明和定义就已经完成了; 
               function fu(num1, num2) {
                    var total = num1 + num2;
                    return total;            }
                // js中内存的分类
                // 栈内存堆内存
                // 堆内存:用来存储引用数据类型的值->对象存储的是属性名和属性值,函数存储的是代码字符串
                // 栈内存:用来提供一个供JS执行的环境 -> 作用域(栈内存) (全局作用域,私有作用域)
            </script>
        </pre>
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:01-预解释

          本文链接:https://www.haomeiwen.com/subject/kdnnjttx.html