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 实现 秒杀,团购 倒计时展示的记录 分享
Jul 12 Javascript
js Date概念详细介绍
Nov 22 Javascript
JavaScript中函数(Function)的apply与call理解
Jul 08 Javascript
延时加载JavaScript代码提高速度
Dec 27 Javascript
谈谈对JavaScript原生拖放的深入理解
Sep 20 Javascript
JS常用函数和常用技巧小结
Oct 15 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
Nov 18 Javascript
JS日程管理插件FullCalendar中文说明文档
Feb 06 Javascript
d3.js入门教程之数据绑定详解
Apr 28 Javascript
select获取下拉框的值 下拉框默认选中方法
Feb 28 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
Feb 28 Javascript
Vue发布订阅模式实现过程图解
Apr 30 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创建多级目录的方法
2015/03/24 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
HTML DOM的nodeType值介绍
2011/03/31 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
python写日志封装类实例
2015/06/28 Python
python构建深度神经网络(续)
2018/03/10 Python
python 定时修改数据库的示例代码
2018/04/08 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
部队党性分析材料
2014/02/16 职场文书
诚信考试承诺书
2014/03/27 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
幼儿教师2014年度工作总结
2014/12/16 职场文书
早恋主题班会
2015/08/14 职场文书
市级三好生竞选稿
2015/11/21 职场文书
2016教师国培研修感言
2015/12/08 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
Elasticsearch 索引操作和增删改查
2022/04/19 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python