JavaScript中的函数(二)


Posted in Javascript onDecember 23, 2015

函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

JavaScript 函数语法

函数就是包裹在花括号中的代码块,前面使用了关键词 function:

function functionname()
{
这里是要执行的代码
}

当调用该函数时,会执行函数内的代码。

可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。

提示:JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。

1. 函数的作用域

作用域是指变量的存在的范围。javascript中有两种作用域,一种是全局作用域,变量在整个程序中一直存在,另一种是函数作用域,变量只存在于函数体内部。在函数体外部声明的变量就是全局变量,它也可以在函数体内部读取。

var v = 1;
function f(){
   console.log(v);
}
f();

上述这就是全局变量,函数体内部也可以使用。

function f(){
  var v = 1;
}

而这个就是局部变量,函数体外部无法读取。

2. 闭包

闭包就是定义在函数体内部的函数。

function f() {
var c = function (){}; 
}

上诉代码中c是定义在函数体f中的,c就是闭包。

闭包的特点就在于,在函数体外部可以读取函数体内部的变量。

function f() {
var v = 1;

var c = function (){


return v;

};

return c;
}
var o = f();
o();
// 1

上面的代码显示,原先在函数f外部,我们是没有办法读取内部变量v的。但是,借助闭包c,可以读到这个变量。

闭包不仅可以读取函数内部变量,还可以使得内部变量记住上一次调用时的运算结果。

function f(b) {
return function () { 


return b++;

}
}
var b= f(5);
b() // 5
b() // 6
b() // 7

函数内部的b变量,每一次调用都是在上一次调用时的值的基础上进行计算的。

以上所述是小编给大家介绍的JavaScript中的函数(二) 的全部叙述,希望大家喜欢。

Javascript 相关文章推荐
开发中可能会用到的jQuery小技巧
Mar 07 Javascript
nw.js实现类似微信的聊天软件
Mar 16 Javascript
微信支付如何实现内置浏览器的H5页面支付
Sep 25 Javascript
总结Node.js中的一些错误类型
Aug 15 Javascript
基于jQuery实现Accordion手风琴自定义插件
Oct 13 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
Jan 20 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
Jun 04 Javascript
js实现加载页面就自动触发超链接的示例
Aug 31 Javascript
JS switch判断 三目运算 while 及 属性操作代码
Sep 03 Javascript
详解.vue文件中style标签的几个标识符
Jul 17 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
May 22 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
Apr 09 Javascript
分享JavaScript与Java中MD5使用两个例子
Dec 23 #Javascript
js实现正则匹配中文标点符号的方法
Dec 23 #Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
Dec 23 #Javascript
node.js入门实例helloworld详解
Dec 23 #Javascript
基于JavaScript代码实现pc与手机之间的跳转
Dec 23 #Javascript
AngularJS 日期格式化详解
Dec 23 #Javascript
详解JavaScript时间格式化
Dec 23 #Javascript
You might like
php&java(三)
2006/10/09 PHP
PHP脚本数据库功能详解(下)
2006/10/09 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
php 读取文件乱码问题
2010/02/20 PHP
php输出1000以内质数(素数)示例
2014/02/16 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
JS 对象介绍
2010/01/20 Javascript
javascript字符串拼接的效率问题
2010/12/25 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
JavaScript实现网站访问次数统计代码
2015/08/12 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
深入浅析vue组件间事件传递
2017/12/29 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
vuecli项目构建SSR服务端渲染的实现
2020/10/30 Javascript
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python中字符串变二维数组的实例讲解
2018/04/03 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
波兰珠宝品牌:YES
2019/08/09 全球购物
水果超市创业计划书
2014/01/27 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
作风转变年心得体会
2014/10/22 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
六一亲子活动感想
2015/08/07 职场文书
社区服务理念口号
2015/12/25 职场文书
送给客户微信问候语!
2019/07/04 职场文书