js高阶-小白速看

学习目标

  • 作用域和作用域链

  • 箭头函数

  • 闭包[面试]

作用域和作用域链[背]

1.什么是作用域?

标识符可以访问的范围.

2.标识符?

变量名/函数名/函数的形参/对象的属性

3.作用域分类

  • 全局作用域–访问范围都可以
  • 局部作用域–函数内部可以访问
  • 块级作用域–es6的新增作用域 代码块内访问

4.作用域链-----就近原则

先找自己的,自己没有就一层层向上找,找到就使用,如果找到全局都没有,就报错

箭头函数

箭头函数是es6的语法糖

  • 删除function,在()和{}之间添加一个=>

  • 如果函数体只有一行代码的时候,可以省略return 和 {},建议前期不要省略

  • 如果函数的形参只有一个时候,可以省略(),建议前期不要省略

函数的形参和实参

形参:函数定义的时候参数,占位置.命名遵守含义明确

实参:函数调用时候的参数.参与运算

arguments对象[ES5]—[了解]

是一个伪数组,不能使用数组的方法

箭头函数没有这个arguments对象

rest参数[ES6]

是数组,数组的所有方法都可以直接使用

箭头函数也可以使用

function 函数名称(...形参名称){
	形参名称 就是所有参数的数组
}
IIFE:立即执行函数表达式[了解]

作用?:自动调用,保护变量,形成局部作用域.

;(function(形参1,形参2){
   //代码体 
})(参数1,参数2);

闭包[面试]

1.什么是闭包?

函数内部的标识符跨作用域.这个标识符和函数的总和称为闭包.

2.语法结构
//外部函数把内部函数返回去 外部函数只能调用一次

function 外部函数(){
    let money=500
    return function(){//内部函数
        money-=100
    }
}

//利用iife,外部函数把内函数挂载在window
(function(){
    let money=500
    window.函数名称=function(){
        money-=100
    }
})()

函数名称()
函数名称()
函数名称()
函数名称()
3.作用

保护变量,防止全局污染.

形成一个简单的模块化.

4.缺陷

大量使用闭包,会造成内存溢出.爆栈.消耗性能.

闭包能实现的,es6都能实现.

5.使用场景

防抖函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白讲前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值