JS函数作为参数

  • JS函数作为参数
    • 无参
    • 有参
    • 匿名
    • 类型
    • 来个狠的:自调用

JS函数作为参数

今天我们来康一康函数作为参数~

无参

  1. 这是无参数函数作为参数
function test1(Func)
{Func();
}
function test2()
{alert("我是test2");
}
test1(test2);    //无参数只写函数名

成功执行test2:

有参

  1. 现在调用的函数有一个参数了:
function test1(Func)
{Func(mydata);
}
function test3(data)
{alert(data);
}test1(test3("zhangran"));    //有参数带上参数

匿名

  1. 上难度:匿名函数
function test1(Func)
{Func("hello");
}test1(function (data)  //这里的函数没有名字对不对?
{alert(data);
});

这里的 “hello” 直接传过来了呢~

类型

再来点:

这段函数有点复杂,看来 a 的类型不是函数

改进一下:

var fn = (a)=>{//如果这个参数a是函数,那么就执行这个函数,否则打印a的值if(typeof a === "function"){//a();console.log("function");}else{console.log(a)}
}
fn(test(2))
function test(b) {//console.log(b)console.log("Run");
}


你看 a 的类型是undefined。

来个狠的:自调用


var x = 10;function fn(){console.log(x);
}function show(f){var x = 20;(function(){f();    // 10})()      //自调用
}show(fn);

fn() 作为参数传入了show(),然后就自调用呗~

注意这段代码讲的是变量作用域。

变量取值:

到创建这个变量的函数的作用域中取值
一般情况下,变量取值到 创建 这个变量 的函数的作用域中取值。
但是如果在当前作用域中没有查到值,就会向上级作用域去查,直到查到全局作用域,这么一个查找过程形成的链条就叫做作用域链。

作用域链也是个考点嘿嘿嘿~

实操中有没有这么难的代码啊?

找个工作好难啊!保佑!

Javascript函数作为参数——JS学习笔记相关推荐

  1. 求一个二维数组外围元素之和_C++数组作为函数的参数(学习笔记:第6章 04)...

    数组作为函数的参数[1] 数组元素作实参,与单个变量一样. 数组名作参数,形.实参数都应是数组名(实质上是地址,关于地址详见后续章节),类型要一样,传送的是数组首地址.对形参数组的改变会直接影响到实参 ...

  2. JS学习笔记(五)函数类型、箭头函数、arguments参数、标签函数

    JS学习笔记(五) 本系列更多文章,可以查看专栏 JS学习笔记 文章目录 JS学习笔记(五) 一.函数 1. 函数定义 2. 方法( 对象 + 函数 ) 二.函数参数及返回值 1. 传递原始类型参数 ...

  3. javascript从入门到跑路-----小文的js学习笔记目录

    ** javascript从入门到跑路-----小文的js学习笔记(1)---------script.alert.document.write() 和 console.log 标签 javascri ...

  4. javascript从入门到跑路-----小文的js学习笔记(25)------运动框架----匀速运动、缓冲运动、多物体运动、链式运动

    ** javascript从入门到跑路-----小文的js学习笔记(1)---------script.alert.document.write() 和 console.log 标签 javascri ...

  5. Node.js学习笔记8

    Node.js学习笔记8 HTTP服务器与客户端 Node.js的http模块,封装了一个高效的HTTP服务器和一个简易的HTTP客户端 http.server是一个基于事件的HTTP服务器,核心由N ...

  6. node.js学习笔记5——核心模块1

    node.js学习笔记5--核心模块1 Node.js核心模块主要内容包括:(1)全局对象 (2)常用工具 (3)事件机制 (4)文件系统访问 (5)HTTP服务器与客户端 一: 全局对象 Node. ...

  7. Vue.js学习笔记 2022 04 17

    Vue.js学习笔记 1 Vue.js基础 Vue.js介绍 vuejs 渐进式 JavaScript 框架 Vue.js 如何应用 1 在普通html项目中,引入VUE.JS Hb 的项目 生成的 ...

  8. 千锋Node.js学习笔记

    千锋Node.js学习笔记 文章目录 千锋Node.js学习笔记 写在前面 1. 认识Node.js 2. NVM 3. NPM 4. NRM 5. NPX 6. 模块/包与CommonJS 7. 常 ...

  9. node.js学习笔记

    # node.js学习笔记标签(空格分隔): node.js---## 一 内置模块学习 ### 1. http 模块 ``` //1 导入http模块 const http =require('ht ...

  10. WebGL three.js学习笔记 6种类型的纹理介绍及应用

    WebGL three.js学习笔记 6种类型的纹理介绍及应用 本文所使用到的demo演示: 高光贴图Demo演示 反光效果Demo演示(因为是加载的模型,所以速度会慢) (一)普通纹理 计算机图形学 ...

最新文章

  1. Spring Boot 项目瘦身指南,瘦到不可思议!
  2. 为什么ubuntu64位下C语言for循环不能超过2147483647次?(size_t )
  3. kaggle(一)训练猫狗数据集
  4. 《机器学习》 周志华学习笔记第二章 模型评估与选择(课后习题)
  5. jquery表单验证
  6. java 异步调用webapi_Async Await异步调用WebApi
  7. 将pdf书籍变成横排的方法
  8. k8s核心技术-Service概述_Service的三种类型_ClusterIP只能内部访问_NodePort可以外网访问_LoadBalancer公有云---K8S_Google工作笔记0032
  9. RACCommand
  10. vivo x6plus支持html,vivo x6plus手机USB驱动
  11. Http文件断点下载(Http请求头的Range字段)
  12. java class文件比较_Beyound Compare中比较java字节码class文件
  13. CMake is re-running because generate.stamp.list is missing.
  14. 截取字符串中某一段数据
  15. 我的网关、子网掩码、DNS1、DNS2是什么
  16. Juniper防火墙之ICMP-Ping
  17. 妮可妮可妮 [Hash]
  18. 论文投稿指南——中国(中文EI)期刊推荐(第6期)
  19. Ubuntu16.04 安装配置深度学习配置:GPU加速 Cuda+cudnn+opencv+caffe
  20. 蓝桥杯—交换瓶子—Java

热门文章

  1. 安装java没有jdk_安装Java 环境 JDK 最完整配置方法
  2. c语言图书管理信息系统源代码,C语言 图书信息管理系统 最终源代码
  3. java类与对象实验报告心得体会_java实验报告类与对象
  4. 强大新UI装逼神器微信小程序源码+多模板支持多种流量主模式
  5. python基础训练100题(带答案)
  6. 软件测试 - 用例篇
  7. linux 源码安装httped,Linux下用Intel编译器编译安装NetCDF-Fortan库(4.2版本后)
  8. 好用不贵的蓝牙耳机有哪些?三百以内好用的蓝牙耳机推荐
  9. Navicat for mysql破解版安装步骤
  10. java 性能问题排查与性能优化