js 函数(function)

《Javascript高级程序设计第三版》

3.7 函数

  1. ECMAScript中的函数在定义时,不必指定是否返回值。

  2. 位于return语句之后的任何code都永远不会执行。(之所以写这一条;因为学习时,被残酷的debug和规定强行接受了,)

  3. 可以通过直接使用return来停止执行当前code,并返回undefined。一般这种用法在需要提前终止code又不需要返回值的时候。

  4. use strict,不能将函数&参数命名为eval&arguments,不能出现两个参数同名的情况。(其实在非strict下,也不推荐;只不过在strict下,会导致语法错误)

3.7.1 理解参数(arguments)

  1. arguments 是一个object,包含一个用于存放传入参数的Array、传入参数的个数。

  2. 命名的参数只是提供便利,但不是必需的。

    function fnHowManyArgs(){

      alert(arguments.length);

    }

    fnHowManyArgs(12,"aa");  // 2

    fnHowManyArgs();  // 0

    fnHowManyArgs(2);  // 1

    可以利用这个特性来弥补ECMAScript没有重载的缺憾:

    function fnAdd(){

      var sum;

      swith(arguments.length){

        case 1:

          sum = arguments[0]+100;

          breaks;

        default:

          sum=100;

          breaks;

      }

      return sum;

    }

  3. arguments 的值永远与对应的传入参数的值保持同步,但二者具有独立的内存空间

  4. arugments 的长度由传入的参数决定,不是由定义函数时的命名参数决定的。

  5. 没有传值的命名参数将自动被赋予undefined。

  6. use strict,修改arguments的值,将导致语法错误。

    纯记录,如有错误,请留言交流

原文地址:https://www.cnblogs.com/Ruonan-Li/p/5237076.html