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的值,将导致语法错误。
纯记录,如有错误,请留言交流
js 函数(function)的更多相关文章
- Js函数function基础理解
正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...
- js 函数function的几种形式
//有的时候我们一直都在使用函数,但是却不知道函数使用的正真含义 //其中一个重要的目的是为了提高代码的复用率 //其二函数可以传递参数并有返回值 //函数声明 //不带参数,不带返回值 functi ...
- JS:函数多个参数默认值指定
函数有一个参数时,以往这样定义(参数为p1): function mfun(p1){ … } 当需要为p1设定一个默认值时 function mfun(p1){ if(p1===undefined) ...
- [模拟回调] demo1模拟用字符串调用js函数 demo2模拟springmvc controller回调页面js函数
demo1. 模拟用字符串调用js 函数 function dataQuery() { var strFun = "testCallBack"; var strParam = &q ...
- js中的函数function
js的function对象在调用过程中具有一个arguments的属性,它是由脚本解释器创建的(这也是arguments创建的唯一方式). arguments属性能够看作是一个Array对象,它有le ...
- JS系列:函数function
### 函数 function > 在js中函数就是一个方法(一个功能体)基于这个函数,一般是为了实现某个功能. ``` var total =10; total+=10; total=tota ...
- js中的自执行匿名函数 (function(){})()
JS函数有两种命名方式 1.声明式 声明式会导致函数提升,function会被解释器优先编译.即我们用声明式写函数,可以在任何区域声明,不会影响我们调用. function XXX(){} 2.函数表 ...
- js的函数-function
function函数 function的英文是[功能],[数] 函数:职责:盛大的集会的意思 在js里,就是函数的意思.在Java里叫做方法. 定义函数 function fun(参数){ //函数体 ...
- 【repost】js中(function(){…})()立即执行函数写法理解
摘要: javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解. ...
- js中(function(){…})()立即执行函数写法理解
文章摘自https://my.oschina.net/u/2331760/blog/468672?p={{currentPage+1}} 摘要: javascript和其他编程语言相比比较随意,所以j ...
随机推荐
- Firebug介绍及使用技巧
一.介绍 Firebug是网页浏览器Firefox下的一款开发调试工具.安装firebug后在浏览器的插件工具栏中(上方)会有一个小甲虫的图标. F12打开和关闭Firebug窗口. 二.FireBu ...
- project euler 26:Reciprocal cycles
A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with d ...
- Catch That Cow(BFS)
Catch That Cow Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 有意思的GacUI
所有方法,无论是你写还是工具来codegen还是用宏,最终都指向把这些名字和对应的指针存在一个map里.C++是不提供这个功能的,我也没仔细研究过qt怎么做,不过我在我自己的gacui里面实现了类似的 ...
- java中classPath和Xpath问题
java中classPath和Xpath问题 今天遇到一个问题想获取classpath对应的目录,开始还以为java源代码可以像spring配置文件.xml中一样通过classpath:来获取对应的路 ...
- app行业发展趋势
近日,移动开放平台发布了2014年第一季度App开发行业报告.报告中对目前国内app开发者的分布情况,个人开发者和企业开发者的开发领域,相应比例以及提交应用过程中出现的问题做出统计,为如何建立一个更好 ...
- Combination Sum 解答
Question Given a set of candidate numbers (C) and a target number (T), find all unique combinations ...
- Unique Binary Search Trees 解答
Question Given n, how many structurally unique BST's (binary search trees) that store values 1...n? ...
- 2.8 Classes of Restricted Estimators
根据所加限制的不同,可以将模型分为以下几类 RSS+Roughness penalty $PRSS(f;\lambda)=RSS(f)+\lambda J(f)$ 其中$J(f)$为对函数$f$的pe ...
- [Ruby学习总结]Ruby中的类
1.类名的定义以大写字母开头,单词首字母大写,不用"_"分隔 2.实例化对象的时候调用new方法,实际上调用的是类里边的initialize方法,是ruby类的初始化方法,功能等同 ...