《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的值,将导致语法错误。

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

js 函数(function)的更多相关文章

  1. Js函数function基础理解

    正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...

  2. js 函数function的几种形式

    //有的时候我们一直都在使用函数,但是却不知道函数使用的正真含义 //其中一个重要的目的是为了提高代码的复用率 //其二函数可以传递参数并有返回值 //函数声明 //不带参数,不带返回值 functi ...

  3. JS:函数多个参数默认值指定

    函数有一个参数时,以往这样定义(参数为p1): function mfun(p1){ … } 当需要为p1设定一个默认值时 function mfun(p1){ if(p1===undefined) ...

  4. [模拟回调] demo1模拟用字符串调用js函数 demo2模拟springmvc controller回调页面js函数

    demo1. 模拟用字符串调用js 函数 function dataQuery() { var strFun = "testCallBack"; var strParam = &q ...

  5. js中的函数function

    js的function对象在调用过程中具有一个arguments的属性,它是由脚本解释器创建的(这也是arguments创建的唯一方式). arguments属性能够看作是一个Array对象,它有le ...

  6. JS系列:函数function

    ### 函数 function > 在js中函数就是一个方法(一个功能体)基于这个函数,一般是为了实现某个功能. ``` var total =10; total+=10; total=tota ...

  7. js中的自执行匿名函数 (function(){})()

    JS函数有两种命名方式 1.声明式 声明式会导致函数提升,function会被解释器优先编译.即我们用声明式写函数,可以在任何区域声明,不会影响我们调用. function XXX(){} 2.函数表 ...

  8. js的函数-function

    function函数 function的英文是[功能],[数] 函数:职责:盛大的集会的意思 在js里,就是函数的意思.在Java里叫做方法. 定义函数 function fun(参数){ //函数体 ...

  9. 【repost】js中(function(){…})()立即执行函数写法理解

    摘要: javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解. ...

  10. js中(function(){…})()立即执行函数写法理解

    文章摘自https://my.oschina.net/u/2331760/blog/468672?p={{currentPage+1}} 摘要: javascript和其他编程语言相比比较随意,所以j ...

随机推荐

  1. 安装fedora 16 之后

    电脑换了windows 8 系统之后,再装fedora,发现只有16可以正常安装而且是在win8里安装easyBCD,才能正常启动windows,这是我反复装了很多次才发现此情况的.无奈只能继续使用1 ...

  2. 让操作javascript对象数组像.net lamda表达式一样

    让操作javascript对象数组像.net lamda表达式一样 随着web应用程序的富客户端化.ajax的广泛使用及复杂的前端业务逻辑.对js对象数组.json数组的各种操作越来越多.越来越复杂. ...

  3. python bottle框架(WEB开发、运维开发)教程

    教程目录 一:python基础(略,基础还是自己看书学吧) 二:bottle基础 python bottle web框架简介 python bottle 框架环境安装 python bottle 框架 ...

  4. 2013年9月份阿里JAVA面试经历

    面试时间:2013-9 面试地点:合工大 面试内容: 1. struts2怎么实现的,原理是什么 2. session是怎么实现的?存储在哪里? 3. Java怎么创建链表的? 定义一个结点类,再定义 ...

  5. 小希的迷宫(HDU 1272 并查集判断生成树)

    小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  6. List是线程安全的吗?如果不是该怎么办呢?安全的List对性能的影响有多大呢?

    测试条件: 开启2个并行执行任务,往同一个list对象写入值 测试代码: ; static List<int> list = new List<int>(); static v ...

  7. Android的AndroidManifest.xml文件的详解

    一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activiti ...

  8. HTML条件注释用法诠释

    HTML条件注释用法诠释 注释内容以样式为例,如下: 1.支持所有IE浏览器 <!--[if IE]> <link rel="stylesheet" href=& ...

  9. hdu 1337 The Drunk Jailer

    http://acm.hdu.edu.cn/showproblem.php?pid=1337 #include <cstdio> #include <cstring> #def ...

  10. UESTC_男神的礼物 2015 UESTC Training for Dynamic Programming<Problem A>

    A - 男神的礼物 Time Limit: 3000/3000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit ...