前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JavaScript回调函数

JavaScript回调函数

作者头像
奋飛
发布于 2019-08-15 02:18:05
发布于 2019-08-15 02:18:05
2.3K00
代码可运行
举报
文章被收录于专栏:Super 前端Super 前端
运行总次数:0
代码可运行

JavaScript API里这样解释:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed. (回调是一个函数作为参数传递给另一个函数,其母函数完成后执行。) 使用回调函数的原因:可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。

一、使用函数处理数组

求数组的平均值 方法一(常规方式):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var data = [1,1,3,5,5];
var sum = 0;
for(var i=0; i<data.length; i++){
	sum += data[i];
}
console.log(sum / data.length);

方法二(函数式):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var data = [1,1,3,5,5];
var sum = function(x,y){return x+y;};
console.log(data.reduce(sum)/data.length);

PS:对数组中的所有元素调用指定的回调函数;返回值为通过最后一次调用回调函数获得的累积结果。 array1.reduce(callbackfn[, initialValue]) 如果提供了 initialValue,则 reduce 方法会对数组中的每个元素调用一次 callbackfn 函数(按升序索引顺序)。 如果未提供 initialValue,则 reduce 方法会对从第二个元素开始的每个元素调用 callbackfn 函数。 回调函数的返回值在下一次调用回调函数时作为 previousValue 参数提供。 最后一次调用回调函数获得的返回值为 reduce 方法的返回值。 var data = [1,2,3]; data.reduce(function(x,y){return x+y},2); //8 data.reduce(function(x,y){return x+y}); //6

二、回调函数

示例:数据源为某学生分数,当score<=0由底层处理,当score>0由高层处理。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* 回调函数 */
function f(score,callback1,callback2){
	if(score <= 0){
		console.log("调用底层处理函数")
		/* 使用call函数传参数 */
		callback1.call(this,score);
	}else{
		console.log("调用高层处理函数");
		/* 使用apply函数传参数 */
		callback2.apply(this,[score]);
	}
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* 底层函数 */
function subprocess(score){
	score === 0 ? console.log("该学生未参加考试!") : console.log("输入错误!");
}
/* 高层函数 */
function supprocess(score){
	if(score >= 90){
		console.log("该学生成绩优秀!");
	}else if(score >= 80) {
		console.log("该学生成绩良好!");
	}else if(score >= 60){
		console.log("该学生成绩及格!");
	}else{
		console.log("该学生成绩不及格!");
	}
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* 匿名函数 */
var score = 99;
f(score,function(){
	score === 0 ? console.log("该学生未参加考试!") : console.log("输入错误!");
},function(){
	if(score >= 90){
		console.log("该学生成绩优秀!");
	}else if(score >= 80) {
		console.log("该学生成绩良好!");
	}else if(score >= 60){
		console.log("该学生成绩及格!");
	}else{
		console.log("该学生成绩不及格!");
	}
})

三、高阶函数

所谓高阶函数就是操作函数的函数,它接收一个或多个函数作为参数,并返回一个新的函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* 高阶函数,返回f的返回值的逻辑非 */
function not(f){
	return function(){
		var result = f.apply(this,arguments);
		return !result;
	};
}
/* 判断x是否为偶数的函数 */
var even = function(x){
	return x % 2 === 0;
};

var odd = not(even);	//一个新函数,所做的事情和even()相反
[1,1,3,5,5].every(odd); //true,每个元素都是奇数
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015年06月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
吴恩达-Machine learning Yearning-机器学习训练秘籍-中文完整版
吴恩达的新书出来了,在之前的文章中已经提到过了 吴恩达机器学习新书:MACHINE LEARNING YEARNING免费获取
老潘
2023/10/19
3330
吴恩达-Machine learning Yearning-机器学习训练秘籍-中文完整版
吴恩达《ML Yearning》| 基础的误差分析& 偏差、方差分析
MachineLearning YearningSharing 是北京科技大学“机器学习研讨小组”旗下的文献翻译项目,其原文由Deep Learning.ai 公司的吴恩达博士进行撰写。本部分文献翻译工作旨在研讨小组内部交流,内容原创为吴恩达博士,学习小组成员只对文献内容进行翻译,对于翻译有误的部分,欢迎大家提出。欢迎大家一起努力学习、提高,共同进步!
马上科普尚尚
2020/05/14
2840
吴恩达《ML Yearning》| 基础的误差分析& 偏差、方差分析
机器学习系统性能不尽人意?吴恩达教你如何选择改进策略
选自towardsdatascience 作者:Kritika Jalan 机器之心编译 参与:陈韵竹、路雪 搭建机器学习系统好几周,性能却不尽如人意?Kritika Jalan 近日在 towardsdatascience 上发表文章,总结她从吴恩达的 Coursera 课程《Structuring Machine Learning Projects》中学到的相关经验。机器之心对此进行了编译。 如何选择策略以改进算法表现 你已经花了好几个星期构建机器学习系统。然而,它的性能却不能令你满意。你想到了许多方法
企鹅号小编
2018/01/26
6240
吴恩达《ML Yearning》| 在不同的数据分布上训练及测设&Debug的一些推断算法
MachineLearning YearningSharing 是北京科技大学“机器学习研讨小组”旗下的文献翻译项目,其原文由Deep Learning.ai 公司的吴恩达博士进行撰写。本部分文献翻译工作旨在研讨小组内部交流,内容原创为吴恩达博士,学习小组成员只对文献内容进行翻译,对于翻译有误的部分,欢迎大家提出。欢迎大家一起努力学习、提高,共同进步!
马上科普尚尚
2020/05/14
9280
吴恩达《ML Yearning》| 在不同的数据分布上训练及测设&Debug的一些推断算法
解读吴恩达新书的全球第一帖 (上)
在教完深度学习系列后,吴恩达 (之后称大神) 最近在继续完成他原来编写的《Machine Learning Yearning》一书 (翻译成机器学习秘籍)。该书现在只完成到第 19 章 (总共有 55 章),我读完目录总结出该书要讲的七个要点,如下:
用户5753894
2019/07/08
3570
解读吴恩达新书的全球第一帖 (上)
Macheine Learning Yearning学习笔记(二)
Chapter 5、Your development and test sets (您的开发和测试集)
yuquanle
2019/07/23
3710
Macheine Learning Yearning学习笔记(二)
吴恩达《ML Yearning》| 关于学习曲线的分析&与人类级别的表现对比
MachineLearning YearningSharing 是北京科技大学“机器学习研讨小组”旗下的文献翻译项目,其原文由Deep Learning.ai 公司的吴恩达博士进行撰写。本部分文献翻译工作旨在研讨小组内部交流,内容原创为吴恩达博士,学习小组成员只对文献内容进行翻译,对于翻译有误的部分,欢迎大家提出。欢迎大家一起努力学习、提高,共同进步!
马上科普尚尚
2020/05/14
8490
吴恩达《ML Yearning》| 关于学习曲线的分析&与人类级别的表现对比
[DeeplearningAI 笔记]第三章 1.4-1.7 开发集测试集划分与满足与优化指标
吴恩达老师课程原地址: https://mooc.study.163.com/smartSpec/detail/1001319001.htm
演化计算与人工智能
2020/08/14
3910
[DeeplearningAI 笔记]第三章 1.4-1.7 开发集测试集划分与满足与优化指标
深度学习教程 | AI应用实践策略(上)
本系列为吴恩达老师《深度学习专项课程(Deep Learning Specialization)》学习与总结整理所得,对应的课程视频可以在这里查看。
ShowMeAI
2022/04/14
7190
深度学习教程 | AI应用实践策略(上)
6 个核心理念!诠释了吴恩达新书《Machine Learning Yearning》
吴恩达的《Machine Learning Yearning》主要讲的是如何构建好的机器学习项目。这本书包含了很难在其他地方找到的实际见解,其格式很容易与队友和合作者分享。大多数人工智能技术课程都会向你解释不同的 ML 算法如何在框架下工作,但是这本书教你如何实际使用它们。如果你渴望成为人工智能的技术领导者,这本书将帮助你的道路。历史上,学习如何对人工智能项目做出战略决策的唯一方法是参加研究生课程或获得在公司工作的经验。《Machine Learning Yearning》是有助于你快速获得这种技能,这使你能够更好地建立复杂的人工智能系统。
红色石头
2022/01/12
6630
6 个核心理念!诠释了吴恩达新书《Machine Learning Yearning》
吴恩达《构建机器学习项目》精炼笔记(1)-- 机器学习策略(上)
当我们最初得到一个深度神经网络模型时,我们可能希望从很多方面来对它进行优化,例如:
红色石头
2022/01/12
2620
吴恩达《构建机器学习项目》精炼笔记(1)-- 机器学习策略(上)
Coursera吴恩达《构建机器学习项目》课程笔记(1)-- 机器学习策略(上)
本文介绍了机器学习中模型性能评价的基本概念、常用评价指标、评价方法的分类以及具体案例。包括准确率、精确率、召回率、F1分数、ROC曲线、AUC值、混淆矩阵、损失函数、准确率与混淆矩阵、召回率与F1分数、ROC与AUC等。在评价方法中,介绍了交叉验证、留一法、时间序列法等具体方法。最后介绍了如何通过human-level performance和bayes optimal error来评价模型性能以及提高模型性能的常见方法。
红色石头
2017/12/28
1.1K0
Coursera吴恩达《构建机器学习项目》课程笔记(1)-- 机器学习策略(上)
吴恩达《ML Yearning》| 端到端的深度学习
MachineLearning YearningSharing 是北京科技大学“机器学习研讨小组”旗下的文献翻译项目,其原文由Deep Learning.ai 公司的吴恩达博士进行撰写。本部分文献翻译工作旨在研讨小组内部交流,内容原创为吴恩达博士,学习小组成员只对文献内容进行翻译,对于翻译有误的部分,欢迎大家提出。欢迎大家一起努力学习、提高,共同进步!
马上科普尚尚
2020/05/14
1.7K0
吴恩达《ML Yearning》| 端到端的深度学习
秘籍0x01建立开发集和测试集
机器学习训练秘籍笔记 1-12章 监督学习(supervised learning)是指使用已标记(labeled)的训练样本 来学习一个从 映射到 的函数。监督学习算法主要包括线性回归(linear regression)、对数几率回归(logistic regression,又译作逻辑回归)和神经网络(neural network)。虽然机器学习的形式有许多种,但当前具备实用价值的大部分机器学习算法都来自于监督学习。 训练集(training set)用于运行你的学习算法。 开发集(devel
上善若水.夏
2018/09/28
5180
秘籍0x01建立开发集和测试集
吴恩达新书《Machine Learning Yearning》中7个实用建议(附论文)
《Machine Learning Yearning》是人工智能和深度学习界的专家吴恩达写的一本书,这本书致力于讲明白机器学习算法是怎样工作的,以及如何构建一个机器学习项目。这里我们选取了这本书中7个非常有用的建议向大家介绍。
数据派THU
2018/07/30
3480
吴恩达新书《Machine Learning Yearning》中7个实用建议(附论文)
[DeeplearningAI 笔记]第三章 1.1-1.3 查准率/查全率/F1 分数
[1]吴恩达老师课程原地址: https://mooc.study.163.com/smartSpec/detail/1001319001.htm
演化计算与人工智能
2020/08/14
5500
[DeeplearningAI 笔记]第三章 1.1-1.3 查准率/查全率/F1 分数
从六大概念总结吴恩达新书:做好工程实践应该这样走
《机器学习训练秘籍》(Machine Learning Yearning)这本书讲的是如何构建机器学习项目的开发流程。该书包括了许多在别处难得一见的实用见解,讲述的形式又非常适合分享给团队中的其他成员以及合作者。大多数人工智能方面的课程会向你阐释不同机器学习算法的工作原理,而这本书教授的是如何实际使用它们。
机器之心
2019/03/12
3550
从六大概念总结吴恩达新书:做好工程实践应该这样走
吴恩达《机器学习训练秘籍》:7 条关于项目实践的实用建议
翻译 | shawn 出品 | 人工智能头条(公众号ID:AI_Thinker) 《机器学习训练秘籍》(Machine Learning Yearning)是吴恩达的新作,主要讲的是如何应用机器学习算法以及如何构建机器学习项目。本文从这本书中选出了 7 条非常有用的建议。 近年来,人工智能、机器学习和深度学习迅猛发展,给许多行业带来了变革。吴恩达是业内的领军人物之一,他是在线课程项目 Coursera 的联合创始人,前百度 AI Group 领导人,前 Google Brain 项目负责人。目前他正在编写
用户1737318
2018/06/05
5130
从吴恩达深度学习课程中学到的21个心得
本文介绍了深度学习的21个心得,包括训练和验证数据的划分、选择合适的网络架构、调参、使用预训练模型、使用迁移学习、使用多任务学习、使用端到端学习、使用生成对抗网络、使用自监督学习、使用强化学习、使用对抗样本、使用正则化、使用模型剪枝、使用缓存、使用量化、使用多GPU训练、使用梯度累积、使用学习率调度器、使用Horovod、使用PyTorch和TensorFlow等。
企鹅号小编
2018/01/08
7870
从吴恩达深度学习课程中学到的21个心得
深度学习教程 | AI应用实践策略(下)
本系列为吴恩达老师《深度学习专项课程(Deep Learning Specialization)》学习与总结整理所得,对应的课程视频可以在这里查看。
ShowMeAI
2022/04/14
1.2K0
深度学习教程 | AI应用实践策略(下)
推荐阅读
相关推荐
吴恩达-Machine learning Yearning-机器学习训练秘籍-中文完整版
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文