全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

浅谈JavaScript的函数及作用域

函数和作用域是JavaScript的重要组成部分,我们在使用JavaScript编写程序的过程中经常要用到这两部分内容,作为初学者,我经常有困惑,借助写此博文来巩固下之前学习的内容。

(一)JavaScript函数

JavaScript函数是指一个特定代码块,可能包含多条语句,可以通过名字来供其他语句调用以执行函数包含的代码语句。

1.JavaScript创建函数的方法有两种:

函数声明:

function funcDeclaration(){ return 'A is a function'; }

函数表达式:

var funExpression=function(){ return 'A is a function '; }

上述函数声明和函数表达式的区别(注明:翻译自:不同的方式来写一个函数)在:

JavaScript解析器中存在一种变量声明被提升(hosting)的机制,也就是说变量(函数)的声明会被提升到作用域的最前面,即使写代码的时候是写在最后面,也还是会被提升至最前面。

例如以下代码段:

alert(foo); // function foo() {}
alert(bar); // undefined
function foo() {}
var bar = function bar_fn() {};
alert(foo); // function foo() {}
alert(bar); // function bar_fn() {}

输出结果分别是function foo() {} 、undefined 、function foo() {} 和function bar_fn() {} 。

可以看到foo 的声明写在alert之后,仍然可以被正确调用,因为JavaScript解释器会将其提升到alert前面,而以函数表达式创建的函数bar则不享受此待遇。

所以,JavaScript 引擎执行以上代码的顺序可能是这样的:

  • 创建变量foo和 bar,并将它们都赋值为undefined。
  • 创建函数 foo 的函数体,并将其赋值给变量foo。
  • 执行前面的两个 alert。
  • 创建函数 bar_fn ,并将其赋值给 bar。
  • 执行后面的两个 alert。

2.函数的参数

在调用函数时,你可以向其传递值,这些值被称为参数。

function printName(name){
  console.log(name);
}
printName('Byron');
printName('Casper);

其中name是形参,'Byron'和'Casper'是实参。

说到函数的参数,我们不得不提到arguments。此处涉及的内容有点多,请看客们参考楼主之前转载的javascript arguments。

3.函数重载

重载是很多面向对象语言实现多态性的手段之一,在静态语言中确定一个函数的手段是靠方法签名--函数名+参数列表,也就是说相同名字的函数参数个数不同或者顺序不同都被认为是不同的函数,成为函数重载。

在JavaScript中没有函数重载的概念,函数通过名字确定唯一性,参数不同也被认为是相同的函数,后面的覆盖前面的。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js  # 函数  # 作用域  # 深入理解js函数的作用域与this指向  # JavaScript 基础函数_深入剖析变量和作用域  # JavaScript匿名函数之模仿块级作用域  # JavaScript函数作用域链分析  # js函数内变量的作用域分析  # 一篇文章告诉你JavaScript的作用域和函数该这样理解  # 写在  # 最前面  # 也就是说  # 一个函数  # 你可以  # 是这样  # 是指  # 说到  # 将其  # 并将其  # 可以通过  # 要用  # 并将  # 可以看到  # 提升到  # 被称为  # 有两种  # 两部分  # 而以  # 多条 


相关文章: 枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  常州企业建站如何选择最佳模板?  油猴 教程,油猴搜脚本为什么会网页无法显示?  建站之星价格显示格式升级,你的预算足够吗?  如何用免费手机建站系统零基础打造专业网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  网站制作公司排行榜,四大门户网站排名?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  高防服务器租用指南:配置选择与快速部署攻略  建站之星安装步骤有哪些常见问题?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  宝塔建站助手安装配置与建站模板使用全流程解析  如何通过虚拟主机空间快速建站?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  建站之家VIP精选网站模板与SEO优化教程整合指南  如何实现建站之星域名转发设置?  临沂网站制作公司有哪些,临沂第四中学官网?  Java解压缩zip - 解压缩多个文件或文件夹实例  如何通过二级域名建站提升品牌影响力?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  建站之星如何保障用户数据免受黑客入侵?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  Android自定义控件实现温度旋转按钮效果  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  公司网站设计制作厂家,怎么创建自己的一个网站?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  如何在Golang中指定模块版本_使用go.mod控制版本号  如何在阿里云ECS服务器部署织梦CMS网站?  c++ stringstream用法详解_c++字符串与数字转换利器  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  建站之星下载版如何获取与安装?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  开封网站制作公司,网络用语开封是什么意思?  电商网站制作公司有哪些,1688网是什么意思?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  孙琪峥织梦建站教程如何优化数据库安全? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。