浅析函数声明和函数表达式.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析函数声明和函数表达式.doc

浅析函数声明和函数表达式 下面小编就为大家带来一篇浅析函数声明和函数表达 式一一函数声明的声明提前。小编觉得挺不错的,现在分 享给大家,也给大家做个参考。 前两天班级聚会,除了吃喝玩乐就是睡觉扯淡,甚是 喜悦,真是独乐乐不如众乐乐啊。 PS:毕业的或即将毕业的有时间能聚就聚吧,毕了业 以后属于自己的时间能聚到一块儿可就少太多了。 现在有点时间来看点东西总结些东西了,又因为前段 时间片片断断地看了看JavaScr ipt的函数部分,所以抽时 间总结下函数的相关部分,当然,里面有些部分都是自己 的理解,如果有理解的不对的地方还请小伙伴们不吝指岀。 这一节我结合自己的理解和小伙伴们聊一下函数声明 的声明提前。 注:有的地方也叫函数声明提升。翻译的不一样,意 思一样,大家理解就行。理解万岁! 在聊函数声明的声明提前之前,有必要介绍下函数定 义的几种方法,大部分小伙伴们应该都不陌生。了解的或 者不想了解的就痛快地一滚轮滚下去吧,不熟悉的或者想 再熟悉一下的就放慢脚步起步走。 定义函数的方法 定义函数的方法主要有三种: 函数声明(FunctionD eclaration) 函数表达式 Fu nctionExpre ssion) new Function 构造函数 其中,经常使用的是函数声明和函数表达式的函数定 义方法,这两种方法有着很微妙的区别和联系,而且这两 种方法的使用也容易混淆,所以这篇文章主要总结下这两 种函数定义方法的相关知识点,当然本文的主题依然是关 于函数提前的。 函数声明的典型格式: f unctionfunc tionName (ar gl, arg2,...) { nbsp; It ;!--functio nbody—gt; } 函数表达式 #8226;函数表达式的典型格式: varvariab le=function (argl, arg2,...) { nbsp :nbsp;nbsp:It;!--funct ionbody—gt ; } 包含名称(括弧,函数名)的函数表达式: varvariahl e=functionf unctionName (argl, arg2,???){ nbsp ; nbsp; It; ! 一functionbo dy一gt; 像上面的带有名称的函数表达式可以用来递归: varvariable =functionfu nctionName (x) { nbsp;nbs p; if (xlt;=l ) nbsp; nbs p; nbsp; retu rnl; nbsp;nb sp;else nb sp: nbsp: nbs p: returnx*f unctionName (x); } 声明提前 va r声明提前 小伙伴们应该都听说过声明提前的说法,我想在此再 次重申一遍,因为声明提前是函数声明和函数表达式的一 个重要区别,对于我们进一步理解这两种函数定义方法有 着重要的意义。 但是再说函数声明提前之前呢,有必要说一下v ar声 明提前。 先给出v ar声明提前的结论: 变量在声明它们的脚本或函数中都是有定义的,变量 声明语句会被提前到脚本或函数的顶部。但是,变量初始 化的操作还是在原来var语句的位置执行,在声明语句之 前变量的值是undefined。 上面的结论中可以总结出三个简单的点: 变量声明会提前到函数的顶部; 只是声明被提前,初始化不提前,初始化还在原来 初始化的位置进行初始化; 在声明之前变量的值是undefinedo 还是来例子实在: v arhandsome二handsome; functionh andsomeToUg ly () { nbsp ; alert (hand some); nbs p; varhandso me二ugly; nbsp;alert (handsome); } handsomeTo Ugly (); 正确的输出结果是: 先输出u ndefined,然后输出ugly。 错误的输出结果是: 先输出h andsome,然后输出ugly。 这里正是变量声明提前起到的作用。该handsome局部 变量在整个函数体内都是有定义的,在函数体内的 handsome变量压住了,哦不对,是覆盖住了同名的hands ome全局变量,因为变量声明提前,即varh andsome被提 前至函数的顶部,就是这个样子: varhand some」hands ome; func tionhandsom eToUgly () { n bsp; varhand some; nbsp ; alert (hand some); nbs p; varhandso me二ugly; nbsp;alert (handsome); } handsomeTo Ugly (); 所以说在aler

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档