• js基础之函数递传参数与作用域(5上)


    什么是参数?
    参数就是JS的数据类型;如:数字、字符串、布尔、 函数、对象、未定义...

    先举一个简单的例子:
        function fn1(a,b){
          alert(a+b);
        }
    fn1(100,'px');//第一个参数是函数中的a,第二个是b;

    这里的a和b,可以是任何数据类型,参数可以根据自己的需求放N多个。

    函数作为参数时:
    1.参数为匿名函数时,直接调用;
    例:
       function fn3(fn){
        fn()
       };
    fn3(function (){alert(a)}); //结果是a

    2.参数为有名字的函数时,调用时不可以写小括号;
    例:
       function fn3(fn){
          fn();
       };
    function fn4(){alert(4)};
    fn3(fn4); //这里的参数就不可以写括号了。

    传参的作用:
    **重用代码:
    1.尽量保证HTML代码结构一致,可以通过父级选取子
    元素;
    2.把核心主程序实现,用函数包起来;
    3.把每组里不同的值找出来,通过传参实现;

    作用域:在一个范围内,对数据进行读写操作;

    域:空间、范围、区域....;

    作用:读、写;

    浏览器:
    可以叫“JS解析器”运行JS步骤:
    1."找一些东西":找var function 参数;
        如:var a= 1;
          找到a = 未定义;
    注意:所有的变量,在正式运行代码之前,都提前赋了一个值:未定义;

        如:fn1 = function fn1(){alert(2)}
    注意:所有的函数,在正式运行代码之前,都是整个函数块;

    说明:第一步的操作,就叫做JS的预解析;

    预解析需要注意:
    在预解析过程中,遇到重名的变量,只留下一个;
      a.如遇到,变量和函数重名了,就只留下函数;
      b.如遇到两个重名的函数,根据上下文关系,留下最后一个出现的函数;

    2.逐行解读代码;
    表达式:= 、 +、 -、 *、 /、 % 、++、 -- 、!、参数、 Number()....... 所有能够改变值的东西都叫表达式;

    注意:表达式是可以修改预解析中的值;

    -----------------穿插一道面试题----------------------

    alert(a);
    var a =1;
    function a(){alert(2);}
    alert(a);
    var a =3;
    alert(a);
    function a(){alert(4);}
    alert(a);

    请问以上alert(a)弹出什么?

    答案下章揭晓!~! 

  • 相关阅读:
    第十九题
    第十八题
    第十六题
    win7/64+pip+pygame=pygame安装
    win7/64+python3.4+pyinstall3+tkinter+smtp=图形界面群发邮件客户端
    字典的.get方法
    列表推导式
    第一张
    多线程服务端简易版基于TCP协议的传输
    线程中的锁的相关问题
  • 原文地址:https://www.cnblogs.com/nemoDuoo/p/4571467.html
Copyright © 2020-2023  润新知