Blogger Information
Blog 37
fans 0
comment 0
visits 34813
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
函数与闭包
手机用户1607314868
Original
571 people have browsed it

变量和常量

变量使用let声明,初始化不用赋值,也可以任意更改值。
常量使用const声明,初始化必须赋值,一旦赋值,之后就不能再更新值

  1. let name;
  2. name=1;
  3. console.log(name);
  4. const a=5;
  5. //再赋值就会报错
  6. a=6;
标识符
  • 必须是字母,数字,下划线,$
  • 严格区分大小写
  • 不得使用关键字和保留字

命名方案:js推荐使用小驼峰式

高阶函数

使用函数为参数或者将函数作为返回值的函数就是高阶函数
1.回调函数

变量类型
  1. 原始类型:字符串,数值,布尔,underfined,null
    判断类型用 typeof 变量名
  2. 引用类型: 数组,对象,函数
  • 判断是否为数组 array.isArray(数组);
  • 判断是否为对象
    对象名 instanceof Object;
  • 判断是否为函数
    typeof 函数名
  1. document.addEventListener("click",function(){
  2. alert("hello world~");
  3. });

2.偏函数

  1. let sum=function(a,b){
  2. return function(c,d){
  3. return a+b+c+d;
  4. }
  5. }
  6. let f1=sum(1,2);
  7. console.log(f1(3,4));

3.柯里化

  1. //柯里化
  2. sum=function(a){
  3. return function(b){
  4. return function(c){
  5. return function(d){
  6. return a+b+c+d;
  7. }
  8. }
  9. }
  10. }
  11. //简化了调用参数
  12. let res=sum(1)(2)(3)(4);
  13. console.log(res);

4.纯函数
独立于调用上下文,返回值只能受到传入的参数影响

  1. let sum=function(a,b){
  2. return a+b;
  3. }

箭头函数

  1. let sum=function(a,b){
  2. return a+b;
  3. }
  4. //箭头函数用来简化 匿名函数 的声明
  5. let sum=(a,b)=>{a+b};

没有参数则必须有(),只有一个参数可以不写(),返回值只有一条语句可以不写return。
注意:箭头函数没有原型属性 prototype 不能当构造函数用。箭头函数中的this,始终与它的上下文绑定

闭包

js三种作用域:全局,函数,块
//块作用域

  1. {
  2. let a=1;
  3. const B="world";
  4. }
  5. //外部无法调用
  6. console.log(a,B);

能够访问自由变量的函数就是闭包
什么是自由变量?

  1. let num=100;//既不属于参数变量又不属于私有变量就是自由变量
  2. function add(a,b){
  3. //a,b参数变量
  4. //私有变量
  5. let t=0;
  6. return t+a+b+num;
  7. }

子函数就是闭包,闭包就是子函数

  1. function a(){
  2. //n相对于a()是私有变量
  3. let n=10;
  4. // 这个返回的子函数就是闭包
  5. return function (){
  6. return n;
  7. }
  8. }
  9. console.log(a()());

立即执行

就是再函数后跟()

  1. //声明完直接调用
  2. (function sum(a,b){
  3. console.log(a+b);
  4. })(1,2);
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post