作用域,变量与全局变量

作用域:一个变量或函数可读写的区域
作用:读写;
:空间、范围;

全局作用域:在哪里都可以读写(从上到下,从左到右);
全局变量:在函数外面声明的变量,
在函数内部申明,单没有使用关键字var;

    全局函数:指的是在script标签内声明的,非函数嵌套

局部作用域:只能在特定区域内访问(特定区域,指的是函数),只有函数才能形成一个局部作用域(由里往外);if,for等语句不能形成作用域.

    局部变量:在函数内部用var
    局部函数:在函数里面声明的函数


    只要存在域,就会重新发生一次与解析.

只要存在域,就会重新发生一次预解析
window下面的属性

同名的变量和函数的优先级问题:
同名的变量,下面的干掉上面的;
同名的变量和同名的函数,函数的优先级比较高

局部与全局的优先级:
优先使用局部的

作用域链:多个作用域嵌套会形成作用域链
最里面的这个变量往外面找值是沿着作用域链查找的;只有当在全局作用域也找不到,才会放弃查找,并报错;

生存周期:
全局作用域的生存周期:关闭页面才会销毁;
局部作用域的生存周期:函数执行完毕就销毁;

作用域由里往外,当形成一个新的局部作用域时,就由里往外的

匿名函数

函数表达式:
var 变量名= function(){
//函数体
}
变量名();

匿名函数:没有函数名的函数,不占用内存空间,执行完毕就销毁;
1.给其他函数调用

    var abc = function(){
}

在定时器.延时器 setTimeout(function(){},时间) 函数内部使用(return一个函数出来,必报)

    function abc(){
        return function(){
            alert(a)
        }
    }
    var fun = abc();
    fun();

2.自己调用自己,自调用函数

        (匿名函数)();
        (function(){
            alert(a)
        })()

函数申明:

function 函数命(){

}

猜你喜欢

转载自blog.csdn.net/qq_42899463/article/details/82630262