美文网首页
2018-06-27 js 中 三种 作用域 详解 (全局

2018-06-27 js 中 三种 作用域 详解 (全局

作者: Mo_ham_med | 来源:发表于2018-06-27 16:39 被阅读0次
    js  中 三种 作用域 详解 (全局 , 函数, 块级)
    
    1. 全局变量: 声明在函数外部是的变量 (所有没有用 var 直接赋值的变量 都属于 全局变量)

    2. 布局变量: 声明在函数内部的变量 (所有没有用 var 直接赋值的变量 都属于 全局变量)

    js 中 变量声明 分为   显式声明  和   隐式 声明。
    

    var i = 100 // 显式 声明

    i = 100; // 隐式 声明

    在 函数中

    使用 var 关键字 进行 显式 声明 的 变量  是作为  局部变量, 而 没有 用  var 关键字,使用直接 赋值方式 声明 的是 全局变量。
    
    
    当我们 使用 访问一个 没有声明 的变量时,js  会 报错。   如下:
    
        alert(aaa)   //  报错   aaa  is not undefin   
    
    
    而 我们 给 一个 没有声明 的变量 赋值时,js 不会报错, 相反 它会认为 我们 是 要 隐式 声明 一个 全局变量,这一点 一定 要注意。
    
        num = 10;
        // 隐式 声明
    
    
    
    全局作用域  针对 全局变量  来说 :
    
    
           alert(c);//输出undefind  
    
        // alert(d);报错错  
    
           var c=3;  
    
         function test(){  
    
             var a=1;  
    
             b=2;  
    
             alert(c)//输出三  
    
         }  
    
         alert(c);//输出3  
    
          test(); 
    
    
    
    
    
    全局变量在整个 上下 都有效 ,  只是在没有 赋值之前调用,会输出 undefined。
    
    函数作用域 是 针对   局部变量  来说的, 在 函数中 定义的 变量 在 函数 外不能获取。
    
        function test(){  
    
                alert(a);//声明 未赋值输出undefine  
    
                var a=1;  
    
                alert(a);//1  
    
         }  
    
        // alert(a);报错,外部获取不到  
    
       
    
        test();  
    
        //alert(a);保存不能输出  
    
    
    
    
     块级作用域
    
     概念'{}' 中间部分 都是  块级作用域     ex(测试) : for  while  if  ,中 没有 作用域,
    

    但是,可以用 闭包 实现类似功能。

    
    var i=1;  
    
         if(i==1){  
    
             var b=2;  
    
         }  
    
         alert(b);//输出2  
    
         for(var j=0;j<=2;j++){  
    
            var c=3;  
    
         }  
    
             alert(c);//输出3
    
    
    
    

    相关文章

      网友评论

          本文标题:2018-06-27 js 中 三种 作用域 详解 (全局

          本文链接:https://www.haomeiwen.com/subject/qmqiyftx.html