js作用域

40.0JavaScript作用域

    作用域

    - 作用域指一个变量的作用范围

    - JS中一共两种作用域

      1.全局作用域

      2.函数作用域(局部作用域)

 1.全局作用域

    - 直接写在script标签的JS代码都在全局作用域

    - 全局作用域在页面打开的时候创建在页面关闭时销毁

在全局作用域中有一个对象window,它代表一个浏览器的窗口

它由浏览器创建我们可以直接使用

    - 在全局作用域中

        创建的变量都会作为window对象的属性保存

        全局中的函数都会作为window对象的方法保存

    - 全局作用域中的变量都是全局变量

        在页面的任意的部分都可以访问到

2.函数作用域

        - 调用函数时创建函数作用域函数执行完毕以后作用域销毁

        - 每调用一次函数就会创建一个新的函数作用域他们之间是相互独立的

        - 在函数作用域中可以访问全局变量

            但在全局作用域中无法访问到局部变量

        - 当在函数作用域操作一个变量时它会先在自身作用域中寻找如果有就直接使用如果没有就向上一作用域中寻找直到找到全局作用域如果全局作用域中仍然没有找到则会报错ReferenceError

        - 在函数中想要访问全局变量可以使用window对象

    var num=20;

    function fun(){

        var a=12;

        console.log(a);

        console.log("函数体内访问num="+num);

    }

    fun();作为函数调用

    window.fun();作为对象.函数名() 把fun叫做是windwo对象的方法

    console.log("num="+num);

    console.log(a);

    console.log(typeof window);

    console.log(window);

    

    局部作用域 函数作用域

    var a="这是全局作用域中的变量a";

    function fun2(){

        var a="这是fun2中的变量a";

        console.log(a);

        function fun3(){

            console.log(a);

            console.log(window.a);

        }

        fun3()

    }

    fun2();

    console.log(a);

41.0 JavaScript this

    解析器在调用函数每次都会向函数内部传递一个隐含的参数

    这个隐含的参数就是this,this指向的是一个对象

    这个对象我们称为函数执行的上下文对象

    根据函数调用方式不同this会指向不同的对象

        总结this

        1.以函数的形式调用时this永远都是window

        2.以方法的形式调用是this就是调用方法的那个对象

    function fun(a,b){形参

        console.log("a="+a+", b="+b);

        console.log(this);

    }

    fun(12,34);实参

    

    function sayHello(){

        console.log(this);

    }

    sayHello();

    var obj={

        name:"zhangsan",

        sayWord:sayHello

    };

    obj.sayWord();函数以方法的形式被调用时this指向的是调用方法的对象

var name="全部作用域中的变量name";

    function fun(){console.log(this.name);}

    var obja={ name:"zhangsan"sayWord:fun };{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值