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 相关文章推荐
dotopAlert 提示用户需安装播放器的代码
Sep 17 Javascript
js中数组Array的一些常用方法总结
Aug 12 Javascript
JavaScript中双叹号!!作用示例介绍
Sep 21 Javascript
基于JavaScript实现移除(删除)数组中指定元素
Jan 04 Javascript
jQuery操作Table技巧大汇总
Jan 23 Javascript
微信小程序 加载 app-service.js 错误解决方法
Oct 12 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
Nov 25 Javascript
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
vue兄弟组件传递数据的实例
Sep 06 Javascript
jquery实现进度条状态展示
Mar 26 jQuery
微信小程序转化为uni-app项目的方法示例
May 22 Javascript
vue+element_ui上传文件,并传递额外参数操作
Dec 05 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若干单维数组遍历方法的比较
2011/09/20 PHP
解析php中static,const与define的使用区别
2013/06/18 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
My Desktop :) 桌面式代码
2008/12/29 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
jquery设置控件位置的方法
2013/08/21 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
JavaScript实现随机点名器实例详解
2019/05/07 Javascript
axios异步提交表单数据的几种方法
2019/08/11 Javascript
JavaScript常用工具函数大全
2020/05/06 Javascript
vue实现图片上传功能
2020/05/28 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
为Python程序添加图形化界面的教程
2015/04/29 Python
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
Python3内置模块random随机方法小结
2019/07/13 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
a标签下载链接的简单实现
2016/09/13 HTML / CSS
化验室技术员岗位职责
2013/12/24 职场文书
总经理助理工作职责
2014/02/06 职场文书
小学语文课后反思精选
2014/04/25 职场文书
怎样拟定创业计划书
2014/05/01 职场文书
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫