位置: 编程技术 - 正文

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)

  • 税控盘注意事项
  • 个体经营所得税核定征收2023标准
  • 不得公开发行股票的情形
  • 没达到起征点需要申报吗
  • 特许权使用费收入
  • 月末计提无形资产的折旧
  • 金税四期的到来意味着什么
  • 以货换货要开发票吗
  • 购买方怎么写分录
  • 怎样查是否为一类银行卡
  • 餐饮发票个人抬头怎么写
  • 物业用房的装修费可以在土地增值税清算时扣除吗
  • 企业代扣职工个人缴纳的五险一金
  • 充值给予的优惠怎么用
  • 低价股权转让是利空还是利好
  • 收回的材料赔偿款怎么处理?
  • 其他应收款包括的内容
  • 私募基金管理人a向投资者推介私募产品,不合规
  • 增值税专用发票丢失了要怎么处理
  • 风险纳税人如何解除
  • 增值税从哪一年开始征收的
  • 其他资本公积如何花掉
  • 资本公积转增资本个人股东是否纳税
  • 工资发错了,多发了怎么办
  • 主营业务收入会计英语
  • 专票开票银行一定要对吗
  • 增值税加计扣除政策
  • 劳务公司代发劳务费合法吗
  • 科研费收入如何入账?
  • 付出去的款项退回的会计分录如何做
  • 员工罚款算收入吗
  • 苹果手机查找对方手机位置看不到
  • 公司搞活动买的车能买吗
  • 如何在你的电脑上截图
  • 会计准则对企业行为的影响分析论文
  • 新闻发布管理系统
  • php主要用于
  • 基于随机森林的气温预测
  • 存货采购成本有余额吗
  • 收到投标保证金现金流量
  • python脚本例子
  • 外购商品用于赠送增值税可以抵扣么
  • 免费学电脑的网站
  • 小规模纳税人出租不动产税率是5%还是3%
  • 收入的利息怎么记账
  • 信用证支付方式,银行处理单据时主要关注( )
  • 营改增之后增值税怎么算
  • 税务申报残保金
  • 稿费的个税是怎么算的
  • 预缴税金用于抵减税费
  • 固定资产计提折旧的会计科目
  • 为什么合理损耗不计入成本
  • 小规模纳税人开的专票对方可以抵扣吗
  • 不用交社保的几种情况
  • 上年度亏损,本年要交所得税吗
  • 农村信用社可计算利息吗
  • 代建制取费标准
  • 委外加工物资管理制度
  • 营改增对企业有什么弊端
  • 拆迁置换安置房
  • 企业停产期间在生产违法吗
  • 车辆挂靠收取管理费怎么做账?
  • 为什么要提前计划
  • 电子支付支付是什么意思
  • 购买银行承兑汇票现金流量表怎么填
  • 单位员工购买本地保险
  • mac截图快捷键设置
  • windows8自动开机
  • win8.1连接wifi
  • macos的磁盘
  • Linux中RedHat CentOS Ubuntu Fedora的区别详解
  • windos10正式版
  • web项目可以打包成jar包吗
  • minidump文件怎么打开
  • opengl
  • python如何进行线程操作
  • shell脚本 su
  • 电子税务局企业账号是税号吗
  • 年度营业账簿印章怎么写
  • 中国有没有豁免权
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设