函数的本质:函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。
函数的五种声明方式
1. 具名函数
function a(x,y){
return x+y
}
2. 匿名函数
var a
a = function(x,y){
return x+y
}
3. 赋值具名函数
var a
a = function a (x,y){
return x+y
}
4. window.Function
var a = new Function {'x','y','return x+y'}
5. 箭头函数
var a = (x,y) => {return x+y}
如果箭头右边只有一个语句可以省略`{}`和`return`,省略时需两个都省略,不能只省略一个;
如果只有一个参数,可以省略'()'
函数的属性和方法
函数的name属性
- 声明有名字的函数,则函数的name是声明的名字
- 匿名函数的name值是赋值的变量名
- 赋值声明有名字的函数时,函数的name值时函数的名字
var a = function aa (){};
aa.name // Uncaught ReferenceError: aa is not defined
a.name //"aa"
- 如果用new Function 声明函数,则这个函数没有名字,即'匿名'
函数的length属性
函数的length属性返回函数定义时的参数个数,length值是静态的,不管调用时输入了多少参数,length的值始终是函数定义时的值
函数的硬核调用方法 call()
a.call() 方法用来调用函数,于a()的区别是能明确函数的this值和argument值
函数的this 和arguments
call()
的第一个参数可以用this得到
call()
的后面的参数可以用arguments得到
在普通模式下,如果this
的值是undefined,浏览器会自动把this变成window;在严格模式下('use strict')便不会出现自动转化的情况


arguments
对象包含了函数运行时的所有参数,arguments[0]
是第一个参数,arguments[1]
是第二个参数,以此类推arguments
是伪数组
网友评论