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倒计时功能实现代码
Jun 07 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
Dec 09 Javascript
javascript将url中的参数加密解密代码
Nov 17 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
Nov 12 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
Mar 13 Javascript
微信小程序实现卡片左右滑动效果的示例代码
May 01 Javascript
JS实现简单的文字无缝上下滚动功能示例
Jun 22 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
Nov 09 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
Nov 11 Javascript
JavaScript实现与web通信的方法详解
Aug 07 Javascript
JS实现简单贪吃蛇小游戏
Oct 28 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生成静态html页面的方法(2种方法)
2015/09/14 PHP
PHPMAILER实现PHP发邮件功能
2018/04/18 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
Javascript 函数中的参数使用分析
2010/03/27 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
python读取浮点数和读取文本文件示例
2014/05/06 Python
Python中解析JSON并同时进行自定义编码处理实例
2015/02/08 Python
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
PHP面试题及答案二
2015/05/23 面试题
什么是接口(Interface)?
2013/02/01 面试题
中级会计职业生涯规划范文
2014/01/16 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
职业生涯规划书之大学四年
2019/08/07 职场文书
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
Java基础——Map集合
2022/04/01 Java/Android