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 选择器 xpath 语法应用
May 13 Javascript
TinyMCE 新增本地图片上传功能
Nov 05 Javascript
javascript监听鼠标滚轮事件浅析
Jun 05 Javascript
Jquery实现由下向上展开效果的例子
Dec 08 Javascript
node.js 使用ejs模板引擎时后缀换成.html
Apr 22 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
Jun 21 Javascript
微信jssdk用法汇总
Jul 16 Javascript
JavaScript学习笔记整理_setTimeout的应用
Sep 19 Javascript
详解angularJs指令的3种绑定策略
Apr 13 Javascript
vue实现条件叠加搜索的解决方法
May 28 Javascript
Vue路由前后端设计总结
Aug 06 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
Sep 21 jQuery
分享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设计模式 Command(命令模式)
2011/06/26 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
超级强大的表单验证
2006/06/26 Javascript
使用Firebug对js进行断点调试的图文方法
2011/04/02 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
wxPython窗口中文乱码解决方法
2014/10/11 Python
python的else子句使用指南
2016/02/27 Python
Python 文件处理注意事项总结
2017/04/10 Python
python生成ppt的方法
2018/06/07 Python
Django 请求Request的具体使用方法
2019/11/11 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
介绍一下OSI七层模型
2012/07/03 面试题
优秀毕业自我鉴定
2014/02/15 职场文书
政协调研汇报材料
2014/08/15 职场文书
户籍证明书标准模板
2014/09/10 职场文书
2014房屋登记授权委托书
2014/10/13 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
2016年学校招生广告语
2016/01/28 职场文书
英语教学课后反思
2016/02/15 职场文书
交通事故协议书范本
2016/03/19 职场文书
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python
仅用几行Python代码就能复制她的U盘文件?
2021/06/26 Python
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers