• 作用域


    作用域
    作用域指一个变量的作用范围
    在js中一共有两种作用域
    1全局作用域
    2函数作用域
    直接编写在script标签中的js代码,都在全局作用域中
    全局作用域在页面打开时创建,在页面关闭时销毁
    在全局作用域中有一个全局对象window,我们可以直接使用它代表的是一个浏览器窗口,它由浏览器创建可以直接使用
    在全局作用域中
    创建的对象都会作为window对象的属性保存

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

    var a = 10;
    console.log(window.a);

    函数会作为window的方法去保存

    function fun () {
    console.log("我是一个函数");
    }
    window.fun()
    //    window.alert("hallo")

    变量提前声明
    使用var关键字声明的变量,会在所有的代码执行之前被声明,
    但是如果声明变量时不适用var关键字,则变量不会被声明提前
    全局作用域中的变量都是全局变量在页面中的任意地方都可以获得
    函数的声明提前

    var a;
    console.log(a);
    a = 123;

    使用函数声明形式创建的函数function函数(){}他会在所有代码执行之前就被创建
    他会在所有代码执行之前就被创建,所以我们可以在函数声名前来调用

    console.log(fun2);
    fun();
    fun2();
    //    函数声名会被提前创建
    function fun () {
    console.log("我是一个函数");
    }
    //    函数表达式,不会被提前创建
    var fun2 = function() {
    console.log("我是一个函数");
    }

    函数作用域
    调用函数时创建函数作用域,函数执行完毕以后,函数作用域销毁
    每调用一次函数就会创建一个函数作用域,他们之间是互动独立的
    在函数作用域中可以访问到全局作用域的变量,在函数作用域以外无法访问到函数作用域
    当在函数作域中操作一个变量时,他会现在自身作用域中寻找,没有的话就向上一级寻找,如果找不到则会报错ReferenceError引用异常
    此时函数中找到的时window的属性值

    var a = 10;
    function fun() {
    var    a = 50;
    console.log(window.a);
    }
    fun();
    定义形参就相当于在函数中声明了var a;
    var a=10;
    function fun (e) {
    console.log(e)
    }
    fun() 结果undefined
  • 相关阅读:
    银行数仓主题划份
    Halcon 图像的算术运算(crop_part,invert_image,scale_image)
    Halcon 图像截取 crop_part
    Halcon 算子 threshold
    Halcon 图片读取以及图像转换
    Lens shading correction 的四种方法
    Micro-Manage/ImageJ软件使用技巧快问快答
    Micro-Manager基本操作指南(下)
    Micro-Manager基本操作指南(上)
    MATLAB 配置 Micro-Manager
  • 原文地址:https://www.cnblogs.com/niuyaomin/p/11986692.html
Copyright © 2020-2023  润新知