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中判断函数是new还是()调用的区别说明
Apr 07 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
May 03 Javascript
深入解析JavaScript中函数的Currying柯里化
Mar 19 Javascript
js实现获取两个日期之间所有日期的方法
Jun 17 Javascript
js中遍历对象的属性和值的方法
Jul 27 Javascript
jQuery Ajax File Upload实例源码
Dec 12 Javascript
JS动态生成年份和月份实例代码
Feb 04 Javascript
vuex的module模块用法示例
Nov 12 Javascript
Element UI框架中巧用树选择器的实现
Dec 12 Javascript
Electron vue的使用教程图文详解
Jul 05 Javascript
Vue的click事件防抖和节流处理详解
Nov 13 Javascript
vue单元格多列合并的实现
Nov 26 Vue.js
分享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 进度条实现代码
2009/03/10 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
2010/07/04 PHP
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
python多重继承实例
2014/10/11 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
如何通过python计算圆周率PI
2020/11/11 Python
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
日语系毕业生推荐信
2013/11/11 职场文书
《社戏》教学反思
2014/04/15 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
Python面向对象之内置函数相关知识总结
2021/06/24 Python