zoukankan      html  css  js  c++  java
  • js随笔-变量作用域

    1.函数中定义的变量只在函数中起作用,所以两个函数定义相同的变量互不影响

    function fun(){
      var i=0
    }
    console.log(i);//i is not defined
    

    2. 函数中内嵌函数时,内部的函数可以访问外部函数的变量,外部函数则不能访问内部的变量

    function fun(){
      var i=0;
      function fun2(){
         var j=1;
         console.log(i);
      }
      fun2();
    }
    fun();//0
    

      

    function fun(){
      var i=0;
      console.log(j)
      function fun2(){
         var j=1;
         console.log(i);
      }
      fun2();
    }
    fun();//j is not defined
    

    3.当内部函数与外部函数定义同样的变量的时候,内部函数会把外部函数的变量覆盖掉,所以变量查找,都会先在当前作用域中查找,如果找不到会不停的向上查找,最后如果在全局作用域中也没有找到,则报ReferenceError错误。

    4.因为js会提升变量声明,不会提升变量赋值,因此在变量声明前使用变量也不会报错,因此最好在函数内部首先申明所有变量

    5.减少命名冲突的办法,是把所有的变量和方法都绑定到自己的全局变量上

    // 唯一的全局变量MYAPP:
    var MYAPP = {};
    
    // 其他变量:
    MYAPP.name = 'myapp';
    MYAPP.version = 1.0;
    
    // 其他函数:
    MYAPP.foo = function () {
        return 'foo';
    };
    

    6.let可以声明一个块级作用域,const可以定义常量  

  • 相关阅读:
    20.logging模块
    21.django中间件源码阅读
    18.configparser模块
    15.DRF学习以及相关源码阅读
    19.tcp_upd
    13.关于继承封装,以及反射
    16.html转pdf的一个小示例
    14.django返回展示一张图片
    GridView列标题修改
    ~为服务器端根目录符
  • 原文地址:https://www.cnblogs.com/Anne3/p/7110584.html
Copyright © 2011-2022 走看看