zoukankan      html  css  js  c++  java
  • 函数返回值return详解—JS学习笔记2015-6-16(第58天)

    一、return

    return后面接的实际上就是一个数据类型

    <script>

    // fn1(); =>100

    alert(fn1().length);

    function fn1(){

      // return 100;

      return 'miaov';

    }

    </script>

    1)、函数名+(): fn1() ==> return后面的值;

    2)、return 实际上是所有函数内一个隐藏的属性,默认返回undefined;

    3)、return 后面的任何代码都不会执行。

    二、arguments

    fn1(1,2,3);  // 实参

    function fn1(a,b,c){  // 形参

        // arguments  实际上是一组实参的集合;[1,2,3];

      alert (arguments.length);  // 但它实际上是个对象,但是拥有数组的属性,比如length;

    }

    // 当函数的参数个数无法确定的时候用arguments

    alert( sum(1,2,3));

    alert( sum(1,2,3,4));

    function sum (){ // 这里的参数值无法确定下来;

      var n = 0;

      for( var i=0; i<arguments.length; i++){

        n += arguments[i];

      }

      return n;

    }

    与作用域的关系;

    var a = 1;
    function fn2( a ){
        arguments[0] = 3;
        alert(a);                   // 3
        var a = 2;
        alert( arguments[0] );     // 2
    }
    fn2(a);
    alert(a);                        // 1

    既能读取,也能修改;

    这里提一下 如果没有放参数的情况:

    var a = 1;
    function fn2(){
        alert(a);                // undefined  涉及到作用域的问题;
        var a = 2;
    }
    fn2(a);
    alert(a);                    // 1

    当函数里面放了参数,就相当于用了arguments:

    var a = 1;
    function fn2( a ){
        alert(a);             // 1   这里相当于在alert(a);之前加上了arguments[0] = 1 
        var a = 2;
    }
    fn2(a);
    alert(a);                // 1
  • 相关阅读:
    基本样式
    表单基础知识
    边框内圆角
    灵活的背景定位
    多重边框
    半透明边框
    变量关系
    闭包2——闭包与变量
    闭包
    基本包装类型
  • 原文地址:https://www.cnblogs.com/zhangxg/p/4582063.html
Copyright © 2011-2022 走看看