js局部变量与全局变量

 

在最外层定义的是全局变量

如果在函数内部不用var声明直接赋值的变量,那么这个变量也是全局变量

在函数内部用var声明的变量叫做局部变量

定义在最开头的全局变量在整个js范围内都可以访问到,都可以使用,定义在不定位置的全局变量,只能在定义变量的后边使用这个变量,如果一个变量定义在函数中,而且用var声明,则它属于局部变量,只在方法体内有效,参数也是局部变量,在方法体外,不能够访问到,如果在方法体内直接对变量进行赋值,不用var声明,则属于全局变量,但只有在该函数执行后才能在外部访问到,如果没有执行这个函数,这个变量照样访问不到

一个函数的返回值可以作为另一个函数的参数,这样使用的方式是回调函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script>
window.onload=function(){
    var y=1;//属于全局变量
    function show(x){
        var num=2;
        sum=3;
        return num*x;
    }
    //show();
    //alert(num);出现错误,num的作用域仅限于方法体内
    //alert(x);出现错误,参数a的作用与仅限于方法体内
    alert(sum);//弹出sum的值,方法体内不用var声明的变量,不仅仅作用于方法体内,相当于全局变量(注意,只有在方法运行后才能访问到,否则会提示sum is not defined)
    function fun(){
        return 5;
    }
    alert(show(fun()));//这属于回调函数,回调函数是将一个函数的返回值直接作为另一个函数的参数进行计算的方式
}
</script>
原文地址:https://www.cnblogs.com/zhupeng-1024/p/6050428.html