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 相关文章推荐
JS实现浏览器菜单命令
Sep 05 Javascript
top.location.href 没有权限 解决方法
Aug 05 Javascript
使用JQUERY Tabs插件宿主IFRAMES
Jan 01 Javascript
yepnope.js 异步加载资源文件
Sep 08 Javascript
js 输出内容到新窗口具体实现代码
May 31 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
Dec 12 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
Jul 18 Javascript
javascript实现依次输入input自动定焦
Dec 23 Javascript
vue页面使用阿里oss上传功能的实例(二)
Aug 09 Javascript
jQuery DOM节点的遍历方法小结
Aug 15 jQuery
react 创建单例组件的方法
Apr 26 Javascript
vue.js路由mode配置之去掉url上默认的#方法
Nov 01 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 前一天或后一天的日期
2008/06/28 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
浅析PHP 按位与或 (^ 、&)
2013/06/21 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
通过PHP简单实例介绍文件上传
2015/12/16 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
PHP使用mongoclient简单操作mongodb数据库示例
2019/02/08 PHP
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
swiper自定义分页器使用方法详解
2020/09/14 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
解析Json字符串的三种方法日常常用
2018/05/02 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
Python计算不规则图形面积算法实现解析
2019/11/22 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
JD Sports澳洲官网:英国领先的运动鞋和运动时尚零售商
2020/02/15 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
行政求职信
2014/07/04 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
班级联欢会主持词
2015/07/03 职场文书
为什么中国式养孩子很累?
2019/08/07 职场文书
OpenCV 图像梯度的实现方法
2021/07/25 Python
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技