JavaScript之 函数
DAY4:函数(上)
第一节:
- 函数的概念及作用
概念:函数就是定义一次但是可以调用执行任意多次的JS代码块。
l 函数就是表示一个可以操作的行为动作
作用:提高代码的复用性、可读性等
l 将一个可以操作的行为动作定义好,可以在任何时候任意多次的重复操作这个行为而不需要编写重复的代码
l
- 函数的编写
javascript中通过function关键字来声明定义一个函数
function 函数名称() {
函数中要执行的代码;
}
l 函数定义好之后,函数中的代码在程序运行过程中不会执行;
l 通过函数名称调用函数,调用时执行函数中的代码;
l 通过函数的名称直接调用函数
- 事件的概念种类及作用
事件:就是发生的事情
事件驱动:就是发生了某件事情之后要处理的手段和过程
鼠标事件 |
|
onclick |
鼠标单击 |
ondblclick |
鼠标双击 |
onmousedown |
鼠标按键按下 |
onmouseup |
鼠标按键抬起 |
onmousemove |
鼠标在元素上移动 |
onmouseout |
鼠标移出 |
Onmouseenter |
鼠标移入 |
键盘事件 |
|
Onkeydown |
键盘按键按下 |
Onkeyup |
键盘按键抬起 |
onkeypress |
键盘按键按住 |
- 事件和函数的关系
- 函数和循环结合打印九九乘法表
- 函数的好处
- 参数的声明
function 函数名称(参数列表){
函数体中的代码;
}
- 参数的传递
第二节:应用
- 编写一个函数,计算两个数字的和、差、积、商
要求:使用传参的形式
f1(num1,num2,op){
}
F1(1,2,’+’)
- 编写一个函数,计算三个数字的大小,按从小到大顺序输出
F1(5,2,3) // 2 ,3 ,5
第三节:
- 函数的两种创建方式:声明式和赋值式
直接声明 |
function 函数名称() { 函数中要执行的代码; } |
赋值式声明 |
var x = function 函数名称() { 函数中要执行的代码; } |
- JS的编译和执行
- 变量的声明提升
l 函数中声明变量并且赋值,声明部分会提升到函数中的第一行,赋值部分在原来的位置不变
- 形参和实参
- return关键字
第四节:应用
- 编写任意个数字的求和、差、积、商的函数
- 编写生成4位数字验证码的函数,并生成10次,同时将结果存入数组
第五节:综合应用
- 编写一个函数,计算任意两个数字之间所能组成的奇数个数,数字必须是个位数
比如:
计算0-3之间能组成的奇数个是01、21、03、13、23、31
0,1,2 , 3
2.某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,请编写一个函数,传入原文,输出密文;
DAY5:函数(下)
第一节:精讲
- 作用域
所谓作用域,其实就是指某个变量有效可用的范围
- 局部作用域和全局作用域 (全局变量和局部变量)
- 递归函数
递归的概念
l 所谓递归,就是函数自己执行过程中,调用自己本身的方式。
F(n)=F(n-1)+n = F(n-2)+n-1 +n= F(n-3)+n-2 + n-1 + n ...... F(1)+2+3+4.... n-1 + n |
l 递归,是为了使用最简单的代码解决相似的、重复处理的流程出现的。
递归的步骤:
//1.先找临界值,即无需计算 就能获取的值
//2.找本次 和上一次的关系
//3.假设 当前函数已经可以使用了,调用自身计算上一次的运行结果,再写出本次运行结果 即可
//求1-n之间的和
//1 ........ 100
// 1- 1000
//1. 临界值1
// F(100)= F(99)+100= F(98)+99+100 = F(1)+2+3+4.....+99+100
//2. sum(n-1)+n = sum(n)
function sum1(n) {
//临界值
if(n==1){
return 1;
}
return sum1(n-1)+n;
}
第二节:应用
- 利用递归求100的阶乘
- 利用递归求斐波那契数列
指的是这样一个数列:0,1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
这个数列从第3项开始,每一项都等于前两项之和。
当n > 3 时,每项的值为前两项之和。即当n = 1 和 n = 2 时分别取值为0、1
- 利用递归求两个数字的最大公约
如果数a能被数b整除,a就叫做b的倍数,b就叫做a的约数。
几个整数,公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。例如:12、16的公约数有1、2、4,其中最大的一个是4,4是12与16的最大公约数一般记为(12,16)=4
辗转相除法:
辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。
这就是辗转相除法的原理。
例如,求(319,377):
∵ 319÷377=0(余319)
∴(319,377)=(377,319);
∵ 377÷319=1(余58)
∴(377,319)=(319,58);
∵ 319÷58=5(余29)
∴ (319,58)=(58,29);
∵ 58÷29=2(余0)
∴ (58,29)= 29;
∴ (319,377)=29。
可以写成右边的格式。
用辗转相除法求几个数的最大公约数,可以先求出其中任意两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数,依次求下去,直到最后一个数为止。最后所得的那个最大公约数,就是所有这些数的最大公约数。
M = n;
N = r
f(m,n f(n,r)
第三节:
- 构造函数及对象类型(了解)
第四节:应用
- 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数求/1+1/3+...+1/n
- 使用函数完成任意数字阶乘的计算
要求:页面输入任意数字,点击按钮后计算阶乘
练习
常见事件与函数的结合(可将信息打印在控制台)
转载于:https://www.cnblogs.com/huangzhenhui/p/7544678.html
JavaScript之 函数相关推荐
- javascript 回调函数
javascript 回调函数 回调函数 作为参数传递的函数 示例代码 let x = function () {console.log("执行回调函数") }let y = fu ...
- [译] ES6+ 中的 JavaScript 工厂函数(第八部分)
本文讲的是[译] ES6+ 中的 JavaScript 工厂函数(第八部分), 原文地址:JavaScript Factory Functions with ES6+ 原文作者:Eric Elliot ...
- 【译】JavaScript 工厂函数 vs 构造函数
译者:前端小智 原文:medium.com/@chamikakas- 当谈到JavaScript语言与其他编程语言相比时,你可能会听到一些令人困惑东西,其中之一是工厂函数和构造函数. 想优质文章请猛戳 ...
- 理解javascript 回调函数
理解javascript 回调函数 原文:理解javascript 回调函数 ##回调函数定义 百度百科:回调函数 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一 ...
- 为什么使用JavaScript eval函数是个坏主意?
eval函数是一种动态生成代码的强大而简便的方法,那么有哪些警告? #1楼 我知道这个讨论很古老,但是我真的很喜欢Google的这种方法,并希望与他人分享这种感觉:) 另一件事是,您越了解越多,您就会 ...
- 细说JavaScript异步函数发展历程
2019独角兽企业重金招聘Python工程师标准>>> < The Evolution of Asynchronous JavaScript >外文梳理了JavaScri ...
- JavaScript中函数作为另一个函数的参数的时候它存在于哪个作用域
一直对函数作为参数被传递进另外一个函数理解的不是很清除.先看下这段代码吧: function test(fn){var bar = 1;fn(); } var bar = 99; test(funct ...
- JavaScript的函数
JavaScript的函数 总共有三种:普通函数.匿名函数.自执行函数 普通函数: function func() { } 匿名函数: setInternal(执行的函 ...
- Javascript变量函数浅谈
一.变量 在javascript变量中可以存放两种类型的值:原始值和引用值. 原始值存储在栈上的简单字段,也就是值直接存储在变量所标示的位置内. 引用值存储在堆内的对象,栈内变量保存的是指向堆内对象的 ...
- JavaScript教程——函数(arguments 对象)
arguments 对象 定义 由于 JavaScript 允许函数有不定数目的参数,所以需要一种机制,可以在函数体内部读取所有参数.这就是arguments对象的由来. arguments对象包含了 ...
最新文章
- nod32用户名和密码每天更新_忘记登录密码没有U盘怎么办?无U盘重置密码Win7篇
- Spring Cloud Gateway不能使用外置tomcat部署的问题
- cat /proc/meminfo 各字段详解
- codeforces 1060a(思维水题)
- 与fastboot相关的知识
- Java B2B2C o2o多用户商城 springcloud架构-docker-feign-hystrix(六)
- 【bzoj2151】种树
- Oracle 正则表达式函数-REGEXP_REPLACE 使用例子
- feature scaling小结
- 以太坊的POS共识机制友善的小精灵 Casper
- 【echarts】使用心得之ChinaMap
- 移动pc多平台运营级家校互动平台系统源码转让
- 用Javascript实现回到顶部效果
- Dichotomy(递+非递)
- 苹果公司独有的“产品包装艺术”
- RNN中BPTT的推导和可能的问题
- 最常见的Git错误都有哪些,如何解决它们?
- java微信支付v3系列——8.微信支付之退款成功回调
- java 双屏显示_Android双屏异显的实现
- net core 程序 发布到 docker 中