JS 作用域讲解

声明在当前函数中的变量和当前的形参,作用域都在该函数内;当函数调用结束以后,这些变量和形参会被释放;
【注】当遇到引用类型的时候就要注意。如【例2】

【例1】
        var a = 10;
        function show(a){
            a = 5;
            document.write(a);//5
        }
        document.write(a);//10
        show(a);          //5
        document.write(a);//10
【例2】
       var arr = [10,20];
        function show(arr){
            arr.push(30,40);
            document.write(arr + "<br />");
        }
        document.write(arr + "<br />");//10,20
        show(arr);                     //10,20,30,40
        document.write(arr + "<br />");//10,20,30,40

这里arr却被改变了!
【原因】数组,属于符合数据类型/引用数据类型
【注】函数运行的内存空间是预先分配好的,一旦被分配好内存空间,就不能进行改变了。
【注】复合数据类型/引用数据类型,都不直接存储到我们的函数中,而是存储在堆中。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。