说说 JavaScript 函数
2017-02-13 14:23
211 查看
函数用 function 关键字声明,后跟一组参数以及函数体。
函数通过函数名来调用。
在函数体中,位于 return 语句之后的任何代码永远不会执行。
一个函数中可以包含多个 return 语句,一般位于 if 条件语句之后。
推荐这样做,要么让函数始终都返回一个值,要么永远不要返回值。这样有利于调试代码。
不能把参数命名为eval 或 arguments。
不能出席两个命名参数同名的情况。
可以使用方括号语法来访问 arguments 对象。length 属性表示传递的参数个数:
可以利用 arguments 对象,让函数能够接受任意个参数,以实现适当的功能(模拟重载):
arguments 对象可以与命名参数一起使用。
arguments 对象的值永远与对应的命名参数值保持同步。
没有传递值的命名参数会被自动赋予 undeinfined 值。
ECMAScript 中所有参数传递的都是值。
如果在 ECMAScript 中定义了两个名字相同的函数,则该名字只属于后定义的函数。
通过检查传入函数的参数的类型和数量并作出不同的反应,可以模拟方法的重载(就像上一小节所展示的那样)。
函数通过函数名来调用。
在函数体中,位于 return 语句之后的任何代码永远不会执行。
一个函数中可以包含多个 return 语句,一般位于 if 条件语句之后。
推荐这样做,要么让函数始终都返回一个值,要么永远不要返回值。这样有利于调试代码。
1 严格模式下对函数的限制
不能把函数命名为eval 或 arguments。不能把参数命名为eval 或 arguments。
不能出席两个命名参数同名的情况。
2 理解参数
参数再内部是用一个数组表示。函数体内可以通过 arguments 对象来访问这个参数数组,从而获得传递给函数的每一个参数。可以使用方括号语法来访问 arguments 对象。length 属性表示传递的参数个数:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>arguments.length 方法可以获知有多少个参数传递给了函数</title> </head> <body> <script type="text/javascript"> function howManyArgs(){ console.log(arguments.length); } howManyArgs("String",45);//2 howManyArgs();//0 howManyArgs(12);//1 </script> </body> </html>
可以利用 arguments 对象,让函数能够接受任意个参数,以实现适当的功能(模拟重载):
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>利用函数能够接受任意参数的能力,实现特定功能</title> </head> <body> <script type="text/javascript"> function doAdd() { if (arguments.length == 1) { console.log(arguments[0] + 10); } else if (arguments.length == 2) { console.log(arguments[0] + arguments[1]); } } doAdd(10);//20 ce9e doAdd(30,20);//50 </script> </body> </html>
arguments 对象可以与命名参数一起使用。
arguments 对象的值永远与对应的命名参数值保持同步。
没有传递值的命名参数会被自动赋予 undeinfined 值。
ECMAScript 中所有参数传递的都是值。
3 没有重载
ECMAScript 函数没有签名,因为其参数是 arguments 数组对象。因此没有真正的重载。如果在 ECMAScript 中定义了两个名字相同的函数,则该名字只属于后定义的函数。
通过检查传入函数的参数的类型和数量并作出不同的反应,可以模拟方法的重载(就像上一小节所展示的那样)。
相关文章推荐
- 说说 JavaScript 中那些有趣而且强大的高级函数
- 说说 JavaScript 函数类型
- 基础的 JavaScript 第1部分:函数
- JavaScript世界的一等公民 - 函数
- javascript中的返回函数与闭包
- JavaScript中setInterval函数应用常见问题之一(第一个参数不加引号与加引号的区别)
- JavaScript字符串操作函数
- javascript 一个自定义长度的文本自动换行的函数
- javascript 表单取值函数
- javascript 函数和作用域(函数,this)(六)
- javascript的math相关的函数
- JavaScript 自执行函数简述
- JavaScript中函数的重载
- javascript中 ”匿名函数赋值给变量“与“直接命名函数”有什么不同的作用?
- es6 javascript 的Generator 函数 (上)
- javascript的变量声明和函数声明提升
- javascript 常用函数
- [转]javascript 调用后台函数
- 你相信么,只需一个函数5行JS代码即可在Javascript中实现完整的AOP功能