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 相关文章推荐
javascript下IE与FF兼容函数收集
Sep 17 Javascript
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
Apr 10 Javascript
Javascript 错误处理的几种方法
Jun 13 Javascript
关于JAVASCRIPT urldecode URL解码的问题
Jan 08 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
jquery过滤特殊字符',防sql注入的实现方法
Aug 17 Javascript
BootStrap中
Dec 10 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
Jun 01 Javascript
js实现方块上下左右移动效果
Aug 17 Javascript
微信小程序实现卡片层叠滑动效果
Jun 21 Javascript
vue-iview动态新增和删除的方法
Jun 17 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
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
配置PHP使之能同时支持GIF和JPEG
2006/10/09 PHP
模仿OSO的论坛(三)
2006/10/09 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
JavaScript 学习点滴记录
2009/04/24 Javascript
javascript concat数组累加 示例
2009/09/03 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
Python实现的计算器功能示例
2018/04/26 Python
centos7之Python3.74安装教程
2019/08/15 Python
Django 返回json数据的实现示例
2020/03/05 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
生产车间实习自我鉴定
2013/09/23 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
超市客服工作职责
2014/06/11 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
2015年电气技术员工作总结
2015/07/24 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
青年教师听课心得体会
2016/01/15 职场文书