js-函数

「爱情、让人受尽委屈。」 2022-03-15 09:28 240阅读 0赞

js函数表示方法有两种:函数声明和表达式法

一、函数声明

  1. 变量和函数均匀预解析
  2. console.log(a) ====> var a ;
  3. var a = 10 ; console.log(a) //undefined
  4. a= 10;

表示方法:

  1. 表示方法:
  2. function 函数名(){
  3. }
  4. 简单举例:
  5. 20+30 a+b
  6. function add(){
  7. console.log(20+30) //50
  8. }

二、表达式法

  1. add()
  2. var add = function(){
  3. console.log(20+30) //50
  4. }
  5. 其中add变量保存的是匿名函数在堆结构的地址
  6. 动态 参数对象 arguments 保存实参的值 数组的方式
  7. var add = function(a) { //形式参数
  8. var sum = 0;
  9. for(var i =0;i<arguments.length;i++){
  10. sum = sum+arguments[i];
  11. }
  12. //输出 返回值 return
  13. return sum ;
  14. }
  15. add(1,2,3,4,5); //实际参数
  16. // arguments = [1,2,3,4,5]

三、两种方法区别

  1. 函数声明 可以先调后定 不报错 有变量提升规则
  2. 函数表达式法 必须先定义后调用

四、递归函数

思想:将大的问题分解成相似的子问题
方法:自己调用自己
但是不高效 循环——>调用函数
清晰 ###系列规律

递归函数表达方式:

(1)自定义一个有参有返回值的函数
(2)提取递归的出口

(3)前进段(规律),返回段(栈自发进行的)

  1. 出口表示方法:
  2. if(){
  3. return ;
  4. }
  5. 前进段
  6. else{
  7. return 序列规律表达式;
  8. }

下面我们通过递归函数来解决一些实际案例

案例一:猴子吃桃子

猴子每天吃比前一天的一半还多1个桃,第十天的时候剩一个桃子,问你第一天有多少

递归函数表达方式

  1. function monky(day){
  2. if(day==10){
  3. return 1;
  4. }
  5. else{
  6. return (monky(day+1)+1)*2;
  7. }
  8. }
  9. console.log(monky(1));

也可以使用循环方法实现

案例二、求n的k次幂

  1. //prompt() 获取用户输入 与python里面的input()作用一样
  2. var n=parseInt(prompt('请输入底数:'));
  3. var k=parseInt(prompt('请输入指数:'));
  4. function cimi(n,k){
  5. if(k==1){
  6. return n;
  7. }
  8. else{
  9. return (cimi(n,k-1))*n;
  10. }
  11. }
  12. console.log(cimi(n,k));

同样也可以使用循试实现

案例三、写出斐波那契数列

  1. function Fibonacci(a,b,n){
  2. console.log(a+' ');
  3. if(n<1){
  4. return
  5. }
  6. else{
  7. return Fibonacci(b,a+b,n-1);
  8. }
  9. }
  10. console.log(Fibonacci(1,1,5));

可以使用三个变量交换来简单写出菲波那切数列

  1. var a = 1;
  2. var b = 1;
  3. var c = 0;
  4. for (var i = 1; i < 10; i++) {
  5. if(i<=2){
  6. document.write(1+',')
  7. continue
  8. }
  9. else{
  10. c = a + b;
  11. a = b;
  12. b = c;
  13. document.write(c+',')}
  14. }
  15. 写出的是十个菲波那切数

案例四、使用函数方法表示当前时间

此案例用不到递归函数,是Date()方法的练习

  1. //需求:2019-03-01 09:42:06
  2. /*参数:需要转换的时间毫秒数*/
  3. function formatDate(d) {
  4. var year = d.getFullYear();
  5. var month = d.getMonth(); //3(2) 0 -11
  6. var day = d.getDate(); //一个月中的某一天
  7. var hours = d.getHours();
  8. var min = d.getMinutes();
  9. var sec = d.getSeconds();
  10. // document.write(year,month,day,hours,min,sec);
  11. return [year+'-'+pingZero(month+1)+'-'+pingZero(day)+' '
  12. +pingZero(hours)+':'+pingZero(min)+';'+pingZero(sec)]
  13. }
  14. function pingZero(t) {
  15. return t<10?'0'+t:t;
  16. }
  17. /* new Date() 实例化一个时间对象*/
  18. console.log(new Date()) //Fri Mar 01 2019 09:40:39
  19. document.write(formatDate(new Date()))
  20. var myP = document.getElementById('myP')
  21. // setInterval(formatDate(){
  22. //
  23. // })

20190301194115967.png

发表评论

表情:
评论列表 (有 0 条评论,240人围观)

还没有评论,来说两句吧...

相关阅读

    相关 js函数

    函数介绍 1. 什么是函数: 实现固定功能的代码块 函数是工具,是实现功能的工具 函数是通过其中的代码,来实现所谓的功能 2. 函数的特点:

    相关 JS 函数

    delegate() 指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。 适用于当前或未来

    相关 JS函数

        函数是JS中的一等公民,平常JS的使用基本上都是和函数打交道。JS中的函数也可以看作是一个类(同时也是该类的构造器),函数本身也是一个对象,它是function的实例。

    相关 JS函数

    函数是JS中另一种符合类型,可以包含一段可执行的代码。也可以接收调用者传入参数。 作为弱类型语言,函数参数列表不需要声明数据类型,函数的返回值也不需要声明数据类型。 JS中

    相关 JS函数

    JS函数 一、 什么是函数 二、函数创建写法 1.自定义函数 2.函数表达式(又叫匿名函数) 3.利用函数的构造函数创