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 读取页面load get post ajax 四种方式代码写法
Apr 02 Javascript
javascript之querySelector和querySelectorAll使用介绍
Dec 20 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
Mar 22 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
Jan 09 Javascript
Node调试工具JSHint的安装及配置教程
May 27 Javascript
JavaScript操作URL的相关内容集锦
Oct 29 Javascript
基于js中document.cookie全面解析
Sep 14 Javascript
springmvc接收jquery提交的数组数据代码分享
Oct 28 jQuery
Javacript中自定义的map.js  的方法
Nov 26 Javascript
React Native中NavigatorIOS组件的简单使用详解
Jan 27 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
Aug 06 Javascript
vue路由守卫+登录态管理实例分析
May 21 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/03/25 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
WAMP环境中扩展oracle函数库(oci)
2015/06/26 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
js如何打印object对象
2015/10/16 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
vue中的使用token的方法示例
2020/03/10 Javascript
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
Python中IPYTHON入门实例
2015/05/11 Python
Python选课系统开发程序
2016/09/02 Python
Django验证码的生成与使用示例
2017/05/20 Python
Python切片工具pillow用法示例
2018/03/30 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
深入CSS3 动画效果的总结详解
2013/05/09 HTML / CSS
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
大学生个人先进事迹材料范文
2014/05/03 职场文书
霸气队列口号
2014/06/18 职场文书
路政管理求职信
2014/06/18 职场文书
2014最新实习证明模板
2014/10/02 职场文书
处罚决定书范文
2015/06/24 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python