JavaScript函数

函数的本质:函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。
函数的五种声明方式
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属性
  1. 声明有名字的函数,则函数的name是声明的名字
  2. 匿名函数的name值是赋值的变量名
  3. 赋值声明有名字的函数时,函数的name值时函数的名字
var a = function aa (){};
aa.name // Uncaught ReferenceError: aa is not defined 
a.name  //"aa"
  1. 如果用new Function 声明函数,则这个函数没有名字,即'匿名'
函数的length属性

函数的length属性返回函数定义时的参数个数,length值是静态的,不管调用时输入了多少参数,length的值始终是函数定义时的值

函数的硬核调用方法 call()

a.call() 方法用来调用函数,于a()的区别是能明确函数的this值和argument值

函数的this 和arguments

call()的第一个参数可以用this得到
call()的后面的参数可以用arguments得到
在普通模式下,如果this的值是undefined,浏览器会自动把this变成window;在严格模式下('use strict')便不会出现自动转化的情况

JavaScript函数_第1张图片

JavaScript函数_第2张图片

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

你可能感兴趣的:(JavaScript函数)