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 相关文章推荐
网页和浏览器兼容性问题汇总(draft1)
Jun 01 Javascript
js单例模式的两种方案
Oct 22 Javascript
jQuery实现的多级下拉菜单效果代码
Aug 24 Javascript
jQuery实现Tab菜单滚动切换的方法
Sep 21 Javascript
jQuery无刷新分页完整实例代码
Oct 27 Javascript
深入理解MVC中的时间js格式化
May 19 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
Jun 02 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
Aug 02 Javascript
node.js入门学习之url模块
Feb 25 Javascript
js删除数组中的元素delete和splice的区别详解
Feb 03 Javascript
微信小程序:数据存储、传值、取值详解
May 07 Javascript
js实现倒计时秒杀效果
Mar 25 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)
2010/09/04 PHP
php入门学习知识点三 PHP上传
2011/07/14 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
python缩进区别分析
2014/02/15 Python
Linux下Python获取IP地址的代码
2014/11/30 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
Python求凸包及多边形面积教程
2020/04/12 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
几个Shell Script面试题
2012/08/31 面试题
自我评价200字分享
2013/12/17 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python