JS函数-基础

72 阅读1分钟

认识函数

  • 一个能实现特定功能的固定程序段,带有一个入口和一个出口。
  • 它必须要先声明,才能调用,调用才是真正执行
  • 函数执行到return立即终止,导出结果,如果没有return,默认返回undefined

两种函数声明方式

  • 方式一:函数声明 function say(name){...}
  • 方式二:函数表达式 const say = function(name) {...}

函数执行/调用

假设函数名为f,有三种方式执行 没有其他方式,即使是浏览器、Vue、React要执行f,也只有这三种方式

  • f(x,y,z)
  • f.call(神秘参数,x,y,z)
  • f.apply(神秘参数,[x,y,z])
const f = function(){return '返回值'}

//赋值为函数名(存的是地址)
button.onclick = f
//等价于
button.onclick = #404

//函数调用(得到返回值,然后赋值)
button.onclick = f()
//等价于
button.onclick = '返回值'

箭头函数

const sum = function(a, b) {  
    return a + b  
}  
// 等价于  
const sum = (a, b) => {  
    return a + b  
}  
//如果函数体只有return,可简化成  
const sum = (a, b) => a + b  
//如果参数只有一个,可把参数小括号去掉  
const inc = n => ++n  
//如果返回的值是对象,对象需要加小括号  
const createPet = name => ({name: name})  
const sum = a => b => a + b  
console.log( sum(3)(4) )  
//等价于  
function sum(a) {  
    return function(b) {  
    return a + b  
    
}

变量的作用域与闭包

  • 在代码声明的时候就确定了

    • 跟函数执行无关
    • 词法作用域、静态作用域
  • 就近原则

闭包: 如果一个函数访问了它外面的自由变量,那么这个函数加这些变量的总和 就叫闭包