javascriptのfunction
来源:互联网 发布:山东大学网络教育统考 编辑:程序博客网 时间:2024/06/01 10:30
1.函数声明
使用关键字funciton关键字来声明,后面跟上一组参数以及函数体.
无参数
function boy() { //函数的声明 //代码}
函数的声明已经完成,但是还不能运行,这是我们需要调用函数才能是这个函数运行.
box(); //函数的调用,调用的位置可以放在函数声明的前面
有参数
function boy(name,age) { //代码}boy("name",age);
如果不传参数进去,就会定义为undefined
函数表达式
var print = function (){ // ...};采用函数表达式声明函数时,function命令后面不带有函数名。如果加上函数名,该函数名只在函数体内部有效,在函数体外部无效。var print = function x(){ console.log(typeof x);};x// ReferenceError: x is not definedprint()// function这个x只在函数体内部可用,指代函数表达式本身,其他地方都不可用。这种写法的用处有两个,一是可以在函数体内部调用自身,二是方便除错(除错工具显示函数调用栈时,将显示函数名,而不再显示这里是一个匿名函数)需要时,可以采用下面的形式声明函数。var f = function f() {};
函数的属性和方法
name属性
name属性返回紧跟在function关键字之后的那个函数名
function f1() {}f1.name // 'f1'var f2 = function () {};f2.name // ''var f3 = function myName() {};f3.name // 'myName'
length属性
返回函数定义中参数的个数
function f(a, b) {}f.length //2
toString
返回函数的源码
function f() { a(); b(); c();}f.toString();function f() { a(); b(); c();}
函数内内部的注释也是可以返回的
函数内部的变量提升
var 命令声明的变量,不管在什么位置,变量声明都会被提升到函数体的头部.
function foo(x) { if (x > 100) { var tmp = x -100; }}等同于function foo(x) { var tmp; if (x > 100) { tmp = x -100; }}
函数本身的作用域
函数本身也有一个值,也有自己的作用域.她得作用域绑定其声明时所在的作用域
var a = 1;var x = function () { console.log(a);};function f() { var a = 2; x();}f(); //1
函数x在函数f的外面声明的,所以它的作用域绑定外层,内部变量a不会到函数体f体内取值.
2.return返回值
函数都是调用后直接执行的.实际上,任何函数都可通过return语句跟后面的要返回的值来实现返回值.
function boy() { return "Hello world!" //表示把这句话字符串返回回来}
这时我们使用boy()进行调用,是没有作用的.
它实际进行的操作为:
boy() = "Hello world!";alert(boy()); //调用函数返回值,然后输出
有参数的同理是一样可以得到的.
我们还可以把函数的返回值赋给一个变量,然后通过变量进行操作.
var strInfo = boy('马云',40);alert(strInfo);
return与具有还有一个功能是退出当前函数
function boy() { if( num < 5 ) return num; //满足条件,返回num return 100; //返回之后,就不执行下面的语句了}alert(box(10));
3.arguments对象
ECMAScript函数不介意传递进来多少参数,也不会因为参数不统一而错误.实际上,函数体内可以通过arguments对象来接收传递进来的参数.
function boy() { return arguments[0]+'|'+arguments[1]+'|'+arguments[2];}boy("boy",23,"web前端");
可以利用length的属性(arguments.length),来进行动态操作.
4.重载:根据不同的参数调用相同的函数
function box(num,a) { return num + 100;}function box(num) { //第二个函数把第一个函数覆盖掉,不具备重载功能 return num + 150;}
alert(box(50,1));
//重载就是根据参数,选择相同函数名而参数不同的函数
0 0
- javascriptのfunction
- javascriptのfunction之谜
- JavaScript function return function..
- Javascript Function
- Javascript Function
- javascript (function(){})()
- Javascript Function
- javascript Function
- javascript (function(){})()
- javascript (function(){})()
- javascript (function(){})()
- javascript (function(){})()
- javascript Function()
- javascript Function()
- javascript (function(){})()
- javascript (function(){})()
- javascript (function(){})()
- javascript (function(){})()
- Log4j.properties配置详解
- Handlebars模板开发指南
- iOS_微信支付
- 怎样理解iPhone6 Plus的分辨率
- Java中面向对象的实例解释——冰箱装大象
- javascriptのfunction
- 加载自定义dialog,设置颜色渐变效果
- mongo db 使用方法
- iOS高效编程秘诀—坚持编程习惯
- MMO多人同时在线的服务器和客服端同步问题
- 自学,C#委托和事件
- 将网页转成pdf的方法
- Codeforces Round #318 D. Bear and Blocks
- Git的使用十一(创建与合并分支)仅限Mac亲测