JavaScript函数定义方法实例详解


Posted in Javascript onMarch 05, 2019

本文实例讲述了JavaScript函数定义方法。分享给大家供大家参考,具体如下:

JavaScript 函数定义方法

函数声明

在之前的教程中,你已经了解了函数声明的语法 :

function functionName(parameters) {
 执行的代码
}

函数声明后不会立即执行,会在我们需要的时候调用到。

function myFunction(a, b) {
  return a * b;
}

分号是用来分隔可执行JavaScript语句。

由于函数声明不是一个可执行语句,所以不以分号结束。

函数表达式

JavaScript 函数可以通过一个表达式定义。

函数表达式可以存储在变量中:

var x = function (a, b) {return a * b};

在函数表达式存储在变量后,变量也可作为一个函数使用:

var x = function (a, b) {return a * b};
var z = x(4, 3);

以上函数实际上是一个 匿名函数 (函数没有名称)。

函数存储在变量中,不需要函数名称,通常通过变量名来调用。上述函数以分号结尾,因为它是一个执行语句。

尽量避免使用 new 关键字。

函数提升(Hoisting)

在之前的教程中我们已经了解了 "hoisting(提升)"。

提升(Hoisting)是 JavaScript 默认将当前作用域提升到前面去的的行为。

提升(Hoisting)应用在变量的声明与函数的声明。

因此,函数可以在声明之前调用:

myFunction(5);
function myFunction(y) {
  return y * y;
}

使用表达式定义函数时无法提升。

自调用函数

函数表达式可以 "自调用"。

自调用表达式会自动调用。

如果表达式后面紧跟 () ,则会自动调用。

不能自调用声明的函数。

通过添加括号,来说明它是一个函数表达式:

(function () {
  var x = "Hello!!";   // 我将调用自己
})();

以上函数实际上是一个 匿名自我调用的函数 (没有函数名)。

函数可作为一个值使用

JavaScript 函数作为一个值使用:

function myFunction(a, b) {
  return a * b;
}
var x = myFunction(4, 3);

JavaScript 函数可作为表达式使用:

function myFunction(a, b) {
  return a * b;
}
var x = myFunction(4, 3) * 2;

函数是对象

在 JavaScript 中使用 typeof 操作符判断函数类型将返回 "function" 。

但是JavaScript 函数描述为一个对象更加准确。

JavaScript 函数有 属性方法

arguments.length 属性返回函数调用过程接收到的参数个数:

function myFunction(a, b) {
  return arguments.length;
}

toString() 方法将函数作为一个字符串返回:

function myFunction(a, b) {
  return a * b;
}
var txt = myFunction.toString();

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Jquery遍历节点的方法小集
Jan 22 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
Jun 26 Javascript
javascript如何实现暂停功能
Nov 06 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
Aug 30 Javascript
轻松理解Javascript变量的相关问题
Jan 20 Javascript
jquery单击文字或图片内容放大并居中显示
Jun 23 jQuery
在angular 6中使用 less 的实例代码
May 13 Javascript
jQuery实现的自定义轮播图功能详解
Dec 28 jQuery
详解一些适用于Node.js的命名约定
Dec 08 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
Mar 03 Javascript
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
解决微信授权成功后点击按返回键出现空白页和报错的问题
Jun 08 Javascript
C#程序员入门学习微信小程序的笔记
Mar 05 #Javascript
JavaScript函数的4种调用方法实例分析
Mar 05 #Javascript
微信小程序保存多张图片的实现方法
Mar 05 #Javascript
JS添加或删除HTML dom元素的方法实例分析
Mar 05 #Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
Mar 05 #Javascript
es6数据变更同步到视图层的方法
Mar 04 #Javascript
使用webpack构建应用的方法步骤
Mar 04 #Javascript
You might like
海贼王:最美的悬赏令!
2020/03/02 日漫
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
php 带逗号千位符数字的处理方法
2012/01/10 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
javascript基本语法分析说明
2008/06/15 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
Python的re模块正则表达式操作
2016/05/25 Python
Python内存读写操作示例
2018/07/18 Python
python 获取图片分辨率的方法
2019/01/08 Python
python中嵌套函数的实操步骤
2019/02/27 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
python字符串替换re.sub()实例解析
2020/02/09 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
PHP面试题大全
2015/10/16 面试题
音乐学个人的自荐书范文
2013/11/26 职场文书
企划专员岗位职责
2013/12/09 职场文书
优秀大学生的自我评价
2014/01/16 职场文书
户外拓展活动方案
2014/02/11 职场文书
请假条怎么写
2014/04/10 职场文书
希特勒的演讲稿
2014/05/23 职场文书
小学音乐教师个人工作总结
2015/02/05 职场文书
pyqt5打包成exe可执行文件的方法
2021/05/14 Python