位置: 编程技术 - 正文

javascript函数声明和函数表达式区别分析(js函数的声明方式)

编辑:rootadmin

推荐整理分享javascript函数声明和函数表达式区别分析(js函数的声明方式),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript函数声明,javascript 声音,javascript函数声明,javascript 声音,javascript函数用法,javascript函数声明的关键字,javascript 声音,javascript函数声明的关键字,内容如对您有帮助,希望把文章链接给更多的朋友!

  平时再用js写函数的时候,一般都是以惯例 function fn () {} 的方式来声明一个函数,在阅读一些优秀插件的时候又不免见到 var fn = function () {} 这种函数的创建,究竟他们用起来有什么区别呢,今天就本着打破砂锅问到底的精神,好好来说说这个让人神魂颠倒的--函数声明。

函数声明

  函数声明示例代码

  这样我们就声明了一个名称为fn的函数,这里出个思考,你认为在这个函数的上面来调用他的话会执行吗?还是会报错?

  控制台输出结果:

  是的,此时fn函数是可以被调用到的,这里来总结下原因。

总结:

  1:此时fn函数是变量的结果,默认存储在全局上下文的变量中(可用 window.函数名 来验证)

  2:此方式为函数声明,在进入全局上下文阶段创建,代码执行阶段,它们已经可用。ps:javaScript在每次进入方法时都会先初始化上下文环境(由全局 → 局部)

  3:它可以影响变量对象(仅影响存储在上下文中的变量)

函数表达式

javascript函数声明和函数表达式区别分析(js函数的声明方式)

  函数表达式示例代码

  这样我们就声明了一个匿名函数,并且把它的引用指向了变量fn?

  再次在该表达式声明的函数上下方各调用一次,来看控制台的输出结果。

  控制台打印结果:

  可以看到代码在执行到第一次调用fn()函数的时候,提示:fn is not a function (fn 不是一个方法),遇到错误而终止运行。

  这说明在第一次调用fn()的同时,var fn 变量没有做为全局对象的一个属性而存在,且 fn 引用的匿名函数上下文也没有被初始化,所以在他之前调用失败。

  控制台打印结果:

  可以看出,在该表达式函数之后来调用是可以的,来总结下那是为什么呢?

总结:

  1:首先变量本身不做为一个函数存在,而是一个匿名函数的引用(值类型的不属于引用)

  2:在代码执行阶段,初始化全局上下文时,它没有被做为全局的一个属性而存在,所以不会造成变量对象的污染

  3:该类型的声明一般在插件的开发比较常见,也可做为闭包中回调函数的调用

  所以 function fn () {} 并不等于 var fn = function () {} ,他们有本质上的区别。

标签: js函数的声明方式

本文链接地址:https://www.jiuchutong.com/biancheng/385602.html 转载请保留说明!

上一篇:javascript常用方法汇总(javascript的常用例子)

下一篇:HTML,CSS,JavaScript速查表推荐(htmlcssjavascript入门经典pdf)

  • 代扣个人借款分录
  • 每月进项税额怎么算
  • 无法收回的应收账款可以税前扣除吗
  • 增值税专用发票怎么开
  • 企业缴纳增值税后还需缴纳所得税吗
  • 增值税的核算方式
  • 发票上传多久可以验旧
  • 电子发票对航天信息利空吗
  • 折扣发票有什么作用
  • 申报退税金额是0是怎么回事
  • 一般纳税人收到普票如何入账
  • 在建工程完工后如何转为固定资产
  • 企业财务负责人和办税人哪个责任大
  • 广告公司 成本
  • 电话费发票个人抬头可以税前扣除
  • 火车票飞机票进项税额怎么抵扣
  • 给已经注销的公司退款
  • 前两个月亏损第三个月盈利所得税怎么计算
  • 分公司特征表述正确的是
  • 怎么用winpe安装系统
  • vim diff对比
  • 销售房产营业税怎么算
  • 职业病治疗费用谁承担
  • 债券利息计算表
  • 投标报名费怎么定
  • php json 对象
  • 第二季度企业所得税怎么计提
  • yolov3目标检测步骤流程图
  • php获取长度
  • nvme安装win10教程
  • 带息应收票据账务处理分录
  • 长期借款的主要成本包括
  • okhttp源码
  • 收费公路通行费补费平台
  • numpy array ndarray区别
  • 公司租用员工的车辆交什么税
  • 商铺首次出租是不是要便宜些
  • 体育用品账务处理
  • 股权转让个人转个人要交什么税
  • 老板出差司机住哪
  • 现流表与资产负债表的关系
  • 电子发票自己打印黑白有效吗
  • 基于stm32的毕业设计
  • 小规模纳税人个体户经营所得税怎么算
  • 月报表该怎么做表格
  • 公司法人往公司账户打钱怎么能换回来
  • 固定资产处置损益怎么算
  • 更衣柜分配方案
  • 贷款利息进项税为什么不能抵扣
  • 勾选认证能够勾选当月
  • 房地产开发企业会计制度
  • 应付账款长时间不付款怎么处理
  • 增值税减免附加税用计提吗
  • 应收账款项目期末余额怎么计算
  • 报销人跟领款人有什么区别
  • 小规模转一般纳税人进项票如何处理
  • 工程公司本月没发工资
  • 固定资产怎么计算折旧额
  • 无发票 入账
  • Win2008 R2 mysql 5.5 zip格式mysql 安装与配置
  • linux 显示
  • mac的vmware
  • wind10怎么恢复wind7
  • 怎么下载win8
  • win7如何整理磁盘
  • windows8如何共享打印机
  • 华为nova7耳机怎么戴
  • win8.1优化工具
  • android内存优化 简书
  • vbs和批处理区别
  • shell实现的实验步骤
  • 安装下载应用
  • mac如何配置pycharm
  • Android ViewPager+Fragment滑动选项卡,tab点击选项卡
  • python web框架2023
  • js合并两个数组并排序
  • js实现的功能
  • 税务总局电子申报软件39
  • 国地税合并人员瘦身
  • 南京国税局长是谁
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设