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 相关文章推荐
JavaScript 设计模式 富有表现力的Javascript(一)
May 26 Javascript
JavaScript基本编码模式小结
May 23 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
Mar 05 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
Apr 06 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
Nov 20 Javascript
Javascript删除指定元素节点的方法
Jun 21 Javascript
js实现tab切换效果
Feb 16 Javascript
JavaScript中三种常见的排序方法
Feb 24 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
May 03 Javascript
vue中$nextTick的用法讲解
Jan 17 Javascript
微信小程序scroll-view点击项自动居中效果的实现
Mar 25 Javascript
vuex刷新后数据丢失的解决方法
Oct 18 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读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
为你总结一些php系统类函数
2015/10/21 PHP
编辑浪子版表单验证类
2007/05/12 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
基于Javascript实现二级联动菜单效果
2016/03/04 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
vue slots 组件的组合/分发实例
2018/09/06 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
python 链接和操作 memcache方法
2017/03/04 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
python实现的生成word文档功能示例
2019/08/23 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
一套SQL笔试题
2016/08/14 面试题
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
高一英语教学反思
2014/01/22 职场文书
电工工作职责范本
2014/02/22 职场文书
工作过失检讨书
2014/02/23 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
材料员岗位职责范本
2015/04/11 职场文书
2016优秀护士求职自荐信
2016/01/28 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript
springboot中的pom文件 project报错问题
2022/01/18 Java/Android
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers
对象析构函数__del__在Python中何时使用
2022/03/22 Python