Javascript函数作为参数——JS学习笔记
JS函数作为参数
- JS函数作为参数
- 无参
- 有参
- 匿名
- 类型
- 来个狠的:自调用
JS函数作为参数
今天我们来康一康函数作为参数~
无参
- 这是无参数函数作为参数
function test1(Func)
{Func();
}
function test2()
{alert("我是test2");
}
test1(test2); //无参数只写函数名
成功执行test2:
有参
- 现在调用的函数有一个参数了:
function test1(Func)
{Func(mydata);
}
function test3(data)
{alert(data);
}test1(test3("zhangran")); //有参数带上参数
匿名
- 上难度:匿名函数
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学习笔记相关推荐
- 求一个二维数组外围元素之和_C++数组作为函数的参数(学习笔记:第6章 04)...
数组作为函数的参数[1] 数组元素作实参,与单个变量一样. 数组名作参数,形.实参数都应是数组名(实质上是地址,关于地址详见后续章节),类型要一样,传送的是数组首地址.对形参数组的改变会直接影响到实参 ...
- JS学习笔记(五)函数类型、箭头函数、arguments参数、标签函数
JS学习笔记(五) 本系列更多文章,可以查看专栏 JS学习笔记 文章目录 JS学习笔记(五) 一.函数 1. 函数定义 2. 方法( 对象 + 函数 ) 二.函数参数及返回值 1. 传递原始类型参数 ...
- javascript从入门到跑路-----小文的js学习笔记目录
** javascript从入门到跑路-----小文的js学习笔记(1)---------script.alert.document.write() 和 console.log 标签 javascri ...
- javascript从入门到跑路-----小文的js学习笔记(25)------运动框架----匀速运动、缓冲运动、多物体运动、链式运动
** javascript从入门到跑路-----小文的js学习笔记(1)---------script.alert.document.write() 和 console.log 标签 javascri ...
- Node.js学习笔记8
Node.js学习笔记8 HTTP服务器与客户端 Node.js的http模块,封装了一个高效的HTTP服务器和一个简易的HTTP客户端 http.server是一个基于事件的HTTP服务器,核心由N ...
- node.js学习笔记5——核心模块1
node.js学习笔记5--核心模块1 Node.js核心模块主要内容包括:(1)全局对象 (2)常用工具 (3)事件机制 (4)文件系统访问 (5)HTTP服务器与客户端 一: 全局对象 Node. ...
- Vue.js学习笔记 2022 04 17
Vue.js学习笔记 1 Vue.js基础 Vue.js介绍 vuejs 渐进式 JavaScript 框架 Vue.js 如何应用 1 在普通html项目中,引入VUE.JS Hb 的项目 生成的 ...
- 千锋Node.js学习笔记
千锋Node.js学习笔记 文章目录 千锋Node.js学习笔记 写在前面 1. 认识Node.js 2. NVM 3. NPM 4. NRM 5. NPX 6. 模块/包与CommonJS 7. 常 ...
- node.js学习笔记
# node.js学习笔记标签(空格分隔): node.js---## 一 内置模块学习 ### 1. http 模块 ``` //1 导入http模块 const http =require('ht ...
- WebGL three.js学习笔记 6种类型的纹理介绍及应用
WebGL three.js学习笔记 6种类型的纹理介绍及应用 本文所使用到的demo演示: 高光贴图Demo演示 反光效果Demo演示(因为是加载的模型,所以速度会慢) (一)普通纹理 计算机图形学 ...
最新文章
- Spring Boot 项目瘦身指南,瘦到不可思议!
- 为什么ubuntu64位下C语言for循环不能超过2147483647次?(size_t )
- kaggle(一)训练猫狗数据集
- 《机器学习》 周志华学习笔记第二章 模型评估与选择(课后习题)
- jquery表单验证
- java 异步调用webapi_Async Await异步调用WebApi
- 将pdf书籍变成横排的方法
- k8s核心技术-Service概述_Service的三种类型_ClusterIP只能内部访问_NodePort可以外网访问_LoadBalancer公有云---K8S_Google工作笔记0032
- RACCommand
- vivo x6plus支持html,vivo x6plus手机USB驱动
- Http文件断点下载(Http请求头的Range字段)
- java class文件比较_Beyound Compare中比较java字节码class文件
- CMake is re-running because generate.stamp.list is missing.
- 截取字符串中某一段数据
- 我的网关、子网掩码、DNS1、DNS2是什么
- Juniper防火墙之ICMP-Ping
- 妮可妮可妮 [Hash]
- 论文投稿指南——中国(中文EI)期刊推荐(第6期)
- Ubuntu16.04 安装配置深度学习配置:GPU加速 Cuda+cudnn+opencv+caffe
- 蓝桥杯—交换瓶子—Java
热门文章
- 安装java没有jdk_安装Java 环境 JDK 最完整配置方法
- c语言图书管理信息系统源代码,C语言 图书信息管理系统 最终源代码
- java类与对象实验报告心得体会_java实验报告类与对象
- 强大新UI装逼神器微信小程序源码+多模板支持多种流量主模式
- python基础训练100题(带答案)
- 软件测试 - 用例篇
- linux 源码安装httped,Linux下用Intel编译器编译安装NetCDF-Fortan库(4.2版本后)
- 好用不贵的蓝牙耳机有哪些?三百以内好用的蓝牙耳机推荐
- Navicat for mysql破解版安装步骤
- java 性能问题排查与性能优化