JavaScript学习笔记-----函数

本文深入探讨JavaScript中的函数定义、调用及特殊用法,包括普通定义、嵌套函数、构造函数等多种形式,并介绍如何将函数作为数据及对象使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1       函数

1.1    函数的定义和调用

函数定义有以下几种方式:

1.1.1   最普通的定义方式

js 代码
  1.   
  2.   
  3. "Content-Type" content="text/html; charset=UTF-8">   
  4.   
  5.   
  6.   
  7. <script language=< span="">"JavaScript">   
  8. function square(x){   
  9.    return x*x;   
  10. }   
  11. var a=square(4);   
  12. document.write(a);   
  13. </script>  
  14.   
  15.   

Java等高级语言一样定义和调用函数的方法。

1.1.1   嵌套函数

JS中函数竟然是可以嵌套的。

如下例所示:

js 代码
  1. function m(a,b){   
  2.    function square(x){   
  3.        return x*x;   
  4.    }   
  5.   
  6.    return a+square(b);   
  7.   
  8. }   
  9.   
  10. document.write("2+3*3="+m(2,3));   

在函数里面可以写函数,神奇的JS~

<o:p> </o:p>

1.1.1   Function()构造函数

js 代码

  1. var f=new Function("x","y","return x*y");   
  2.   
  3. document.write("2*3="+f(2,3));   

 有点像实例化一个类,可以有n个字符串参数,前面n-1个代码函数的参数,最后一个是函数体。

   这个函数实际上就等价于:

   funtion f(x,y){

        Return x*y;

   }

   运行结果是:2*3=6;

1.1.1   函数直接量

    这种定义方法在成熟的产品化的JS库中十分常见,但是对于初学者而言却不常见。

js 代码
  1. var f2=function(x) { return x*x};   
  2. document.write("3*3="+f2(3));   

 

1.1.1   递归调用

js 代码

  1. function factorial(x){   
  2.    if (x<=1)   
  3.       return 1;   
  4.    return x*factorial(x-1);   
  5. }   
  6.   
  7. document.write("3!="+factorial(3));   

输出结果是:3!=6

给函数的功能就是计算一个数的阶乘,如3

1.1    作为数据的函数

js 代码
  1.   
  2.   
  3. "Content-Type" content="text/html; charset=UTF-8">   
  4.   
  5.   
  6.   
  7. <script language=< span="">"JavaScript">   
  8. function square(x){   
  9.    return x*x;   
  10. }      
  11.   
  12. var a=square(4);   
  13. var b=square;   
  14. var c=b(5);   
  15. document.write(c);   
  16. </script>  
  17.   
  18.   

很神奇,定义一个叫做square的函数,然后将它赋值给一个变量b,这个变量就具有square这个函数的功能了,也就等于是这个函数了。

<o:p> </o:p>

函数作为数据,意味着一个函数可以作为另一个函数的参数!<o:p></o:p>

比如:

js 代码
  1. function add(x,y) { return x+y; }   
  2. function multiply(x,y) {return x*y};   
  3. function operate(operator,operand1,operand2){   
  4.     return   operator(operand1,operand2);   
  5. }   
  6.   
  7. document.write("2+3*4="+operate(add,2,operate(multiply,3,4)));   

真的是好神奇,我们定义了两个函数,一个是加法add,一个是乘法multiply,又定义了一个函数叫做operate,也就是操作,它有三个参数,注意第一个参数就是那个函数名!函数也可以作为一个参数传到operate这个函数里,这个参数就代表了这个函数!

<o:p> </o:p>

1.1    函数是对象

JS中,函数是一个对象,因此具有属性和方法!

定义一个属性:

js 代码
  1. uniqueInteger.count=2;   
  2.   
  3. function uniqueInteger(){   
  4.    return uniqueInteger.count++;   
  5. }   
  6.   
  7. var f=function(){     
  8.    for(i=0;i<5;i++){   
  9.        uniqueInteger();   
  10.    }   
  11.   
  12.    return uniqueInteger.count;   
  13. }   
  14. document.write("2+1+1+1+1+1="+f()+";     ");   

首先给uniqueInterger这个函数定义一个属性,方法竟然如此简单,就是直接写上这个属性就可以了,然后就可以用了。这个属性在函数的调用期间就像一个全局变量一样,每次调用都保持上次调用的值。(这也符合对象的特点)

再看下面这个例子:

js 代码
  1. var f1=function(x){ return x*x;}   
  2. f2.func=f1;   
  3.   
  4. function f2(){   
  5.    return func;   
  6. }   
  7.   
  8. var f=function(a){   
  9.     return f2.func(a);   
  10. }   
  11. document.write("3*3="+f(3)+";     ");   

在上一节中我们知道函数可以作为数据,而函数的属性可以被赋上一个值,那么这个值就应该可以是一个函数。

<o:p></o:p>
资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值