zoukankan      html  css  js  c++  java
  • 作用域2—JS学习笔记2015-6-10(第54天)

    一、参数,也可以理解为表达式,参数在使用的时候相当于赋值

    var a=1;

    function fn1(a){  // 这里的参数a 相当于:var a = 1;  a由未定义,变成1,这里的变量是局部变量,与外面的var a=1;是不同的;

      alert(a); // 1 这里是局部变量;

      a=2;

    }

    fn1(a);

    alert(a); // 1   因为这里的a还是访问到全局变量;

    // 想要获取函数内的值:

    方法一:通过作用域链,反向获取;全局变量;

    var str = '';
    function fn1(){

      var a='大鸡腿~';
      str = a;

    }
    fn1();
    alert(str); // 此时str的值就是a;

    方法二:通过参数传递;

    function fn2(){

    var a='自由~';
    fn3(a);

    }
    fn2();
    function fn3(a){ // 这里的a 不是上面的a,也可以是b,c...用来接收函数的传递
    alert(a);
    }

    二:if判断,for循环不是作用域,与函数不一样,但使用时候要特别小心;

    先解析,后执行,才是作用域的标志;因此函数是一个作用域;但if,for等大括号就不是一个作用域了;

    处于兼容性考虑,在想定义全局变量,或者全局函数的时候,请放到if,for等外面去;

    for里面的function不要直接使用已经定义的变量 i,否则会有隐患的(提示我们在使用for循环的时候要特别小心,放到不同的位置,可能会是不同的值)

    例如:

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     5 <title>无标题文档</title>
     6 
     7 
     8 
     9 </head>
    10 
    11 <body>
    12 
    13 <input type="button" value="按钮1">
    14 <input type="button" value="按钮2">
    15 <input type="button" value="按钮3">
    16 
    17 <script>
    18 
    19 var aBtn = document.getElementsByTagName('input');
    20 
    21 for( var i=0; i<aBtn.length;i++){
    22 
    23   aBtn[i].onclick = function(){
    24       
    25      //alert(i); // 返回 3;
    26        //aBtn[i].style.background = 'blue'; // 此时点击按钮,不会有反应而且会报错,因为此时的i已经经过三次的自增,成为了3;而aBtn[3]则根本不存在;
    27      for( var i=0; i<aBtn.length; i++){
    28            aBtn[i].style.background = 'blue';
    29      }
    30 
    31   }
    32 
    33 }
    34 </script>
    35 </body>
    36 </html>
  • 相关阅读:
    (转)大型分布式网站架构技术总结
    VC中怎么输入特殊符号(如平方、立方等下标符号)
    【转】VC++的Unicode编程
    【转】VC下的Unicode编程
    MFC多国语言——资源DLL
    MFC多国语言——资源副本
    【转】SetThreadLocale解决越南文乱码问题
    【转】msxml 操作xml
    关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决
    vc6项目-vc8项目 转换日志
  • 原文地址:https://www.cnblogs.com/zhangxg/p/4567756.html
Copyright © 2011-2022 走看看