JavaScript学习笔记(函数)

JS函数全解析
本文深入讲解JavaScript函数的创建方式,包括函数声明、表达式及构造函数。探讨函数声明与表达式的区别,函数重载特性,以及函数内部特殊对象arguments和this的使用。同时,介绍了函数的属性和方法,如length、prototype、call、apply等,并展示了函数作为值传递和递归调用的特殊用法。

函数就是封装一些JS变量,表达式,语句的代码块,能指定输入和输出,在一些时机调用执行代码

创建函数的方式

  • 函数声明

    funtion funName(num){
    	alert(num)
    }
    
  • 函数表达式

    var funName = function(num){
    	alert(num)
    }
    
  • 通过Function构造函数声明
    传入的最后一个参数是函数体字符串,解析消耗性能,对于复杂的函数逻辑,写起来也复杂,因此不常用

    var funName = new Function('num','return num')
    

函数声明和函数表达式的区别

函数声明具有声明提前的特点,也就是函数调用可以在函数声明之前,而函数表达式只 能先给变量赋值函数,再通过变量调用函数

//函数声明
fun()//正常执行
function fun(){}
//函数表达式
fun2();//会报错
var fun2=funtion(){}

函数没有重载
对于其他语言,声明两个同名函数,传不同的参数就相当于两个不同的函数,但是对于js函数,结果就不同了

function funName(){
	alert(200)
}
function funName(){
	alert(300)
}
funName()//300

上面代码声明了两个同名函数,调用函数,只执行了第二个,换成下面的写法容易理解为什么会这样了

var funName = function (){
	alert(200)
}
funName = function (){
	alert(300)
}
funName()//300

JS函数名只是函数的指针,声明同名函数,只是把这个指针重新赋值,所以函数没有重载入,可以通过传入的参数不同,在函数内部处理不同逻辑,实现重载入的效果

函数内部两个特殊对象

  • arguments

    arguments对象是一个类数组,包含函数实际传入的参数,arguments又一个callee属性,指向当前函数

    //递归时callee属性的应用
    function factorial(num){
        if (num <=1) {
            return 1;
        } else {
            return num * arguments.callee(num-1)
    } }
    
  • this

    this是一个指针,指向函数运行时所在执行环境对象,对象

    关于this的详细内容会单独写一篇文章梳理

函数的属性和方法
因为函数是对象,所以函数拥有属性和方法
函数的属性:

  • length 表示函数的形参数量

    function funName(num1,num2){
    }
    alert(funName.length)//2
    
  • prototype一个指针,指向函数的原型对象
    原型的理解一章有详细说明

函数的方法:

  • call()
  • apply()
  • bind()

以上三个方法用于改变this指向,扩展函数执行作用域,使函数与对象解耦

  • toLocalString()
  • toString()
  • valueOf()

其中,toLocalString(),toString(),valueOf()是从Objetct继承来的

函数的一些特殊用法

  • 作为值传递
  • 递归调用
  • 闭包
Delphi 12.3 作为一款面向 Windows 平台的集成开发环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开发。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi 与 Microsoft Excel 之间的高效桥梁,使开发者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件与组件包的形式提供,开发者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建与编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式与宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开发者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置与依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开发者社区的集体贡献,通过定期更新以适配新版开发环境与 Office 套件,并修复已发现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开发团队能更专注于业务逻辑与用户体验的优化,从而提升整体开发效率与软件质量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值