zoukankan      html  css  js  c++  java
  • 作用域

    作用域
    作用域指一个变量的作用范围
    在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
  • 相关阅读:
    springboot---web 应用开发-文件上传
    springboot --> web 应用开发-CORS 支持
    Springboot
    spring boot ---web应用开发-错误处理
    Spring Boot基础教程》 第1节工具的安装和使用
    jQuery第四课 点击 _选项卡效果一
    jQuery第三课 点击按钮 弹出层div效果
    jQuery第二课 点击弹出一个提示框
    jQuery第一课 加载页面弹出一个对话框
    NPIO 导出Execl
  • 原文地址:https://www.cnblogs.com/niuyaomin/p/11986692.html
Copyright © 2011-2022 走看看