复习知识点 函数
1、声明函数:
- 一次声明,多次使用的语句块;
- 参数:形参,实参
- 返回值: 函数运行的结果
2、函数声明提升 通过 function 声明的函数,在声明语句之前就可以直接调用
3、匿名函数 即没有名称的函数 需要用小括号包起来 如果需要立即执行可以在结尾加括号
4、函数表达式 即定义一个变量 = 函数 使用前必须赋值
5、方法 属于某一个对象的函数
设置默认参数值
//设置函数默认值
function fun(n=2,m=2){
return n + m;
}
let result = fun(5,5);
console.log(result);
若无实参输入则按照默认值nm为2运行,若有实参则用实参进行计算。
立即执行函数
// 立即执行函数
(function(){
console.log("hello")
})()
用小括号包围函数,并且在结尾处加一个括号,立即调用此函数,只能使用一次,且外部不可访问内部参数。
闭包
声明一个函数中的函数叫作闭包函数。
闭包:内部函数总是可访问其所在的外部函数的参数和变量,即使在其外部函数被返回之后
(内部函数被返回,外部函数也不会被销毁)。
let str = "hello"
function fun1(){
let str = "world";
let num = 21
function fun2(){
console.log(num)
console.log(str)
}
fun2();
}
fun1();
代码封装 ES5模块化语法
内部函数运行结果return给外部函数,并设为立即执行函数。
// 闭包 利用闭包实现封装
function fun1(){
let m = 2;
let n = 3;
function fun2(){
return m + n;
}
return fun2();
}
const f = fun1();
const result = f;
console.log(result);
箭头函数 (重点)
箭头函数总是函数表达式;并不存在箭头函数声明。箭头函数支持普通函数参数的所有功能,包括默认值、解构、rest 参数,等等。
// 普通写法
const a =function(a,b){
return b*a;
};
// 箭头函数
const a = (a,b) => a*b;
// 单一元素下的箭头函数
const a = x => x*x;
箭头函数下的this
普通函数的this指向调用该函数的对象,而箭头函数则在哪定义的,this就指向谁
// 箭头函数的this
const cat = {
name:"miao",
sayName(){
let a = this;
setInterval(()=>{
console.log(this.name)
},1000)
}
}
cat.sayName();