美文网首页
第三章:函数

第三章:函数

作者: a2ebcc3676c1 | 来源:发表于2017-05-24 11:47 被阅读4次

    3.1 什么是函数

    function sum(a,b) {
        var c = a + b;
        return c;
    }
    

    函数的组成:

    • 关键字 function

    • 函数名称,如:sum

    • 参数,如:a,b;

    • 函数体,大括号之间的代码;

    • return子句。函数通常有返回值,如果没有显示的返回值,会默认返回undefined

    • 参数:函数内部有个 arguments变量,他能返回函数接收的所有参数。

    • 预定义函数:

      • parseInt();
        • 将任何值转成数字,失败返回NaN
        • 传入字符串,会在遇到首个非数字的字符时停止
          • '123abc' > 123;
          • '1g34' > 1;
          • 'eg43' > NaN;
        • parseInt('FF',16),第二参数可选,代表基数(如十进制,十六进制)
      • parseFloat();
        • 可以接收指数形式 parseFloat('1e2'),结果为100.
      • isNaN(); 一般用来判断是否可以参与算数运算
      • isFinite(); 一般用来检测即非Infinity也非NaN的数字

    3.3 变量的作用域

    • 变量以函数作为作用域
    • 如果我们声明一个变量时没有使用 Var语句,该变量会默认为全局变量。
    变量提升
    • 函数内所有被声明的变量,声明部分会被提升到函数最开始的地方,赋值部分不变,如:
    var a = 123;
    function f() {
        alert(a);
        var a = 1;
        alert(a); // 1
    }
    f();
    
    • 上面函数调用的结果为,第一个alert()显示的是underfined,第二次显示的是1。
      • 如果函数内局部变量与全局变量同名,会覆盖全局变量
      • 局部变量声明的部分会提升
    • 上面的例子可以等价为:
    var a = 123;
    function f() {
        var a; // same as : var a = underfined;
        alert(a); // underfined
        a = 1;
        alert(a); // 1
    }
    
    函数也是数据
    var f = function() {
        return 1;
    }
    
    匿名函数
    var f = function(a) {
        return a;
    }
    
    • 作为参数传递给其他函数;
    • 执行某些一次性任务;
    回调函数
    function add(a,b) {
        return a() + b();
    }
    
    add(
        function() {return 1;},
        function() {return 2;},
    )
    // 结果为3
    
    • 在不做命名的情况下传递函数;
    • 将一个函数调用操作委托给另一个函数;
    • 有助于提升性能;
    即时函数
    • 在函数调用后加(),表示即时调用
    闭包
    • 突破作用域链

    3.7 练习题

    1. 编写一个将十六进制值转换为颜色的函数,如:
    > var a = gerRGB('#00FF00');
    > a;
    "rgb(0,255,0)"
    

    代码如下

    function getRGB(s) {
        var i=0,res="rgb(";
        for (i=0;i<3;i++) {
            var d = (i>1) ? ")" : ",";
            res += parseInt(s[i*2+1] + s[i*2+2],16) + d;
        }
        return res;
    }
    

    相关文章

      网友评论

          本文标题:第三章:函数

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