JS函数定义方式的区别介绍


Posted in Javascript onMarch 22, 2016

关于JS的函数定义方式有以下两种:

(1)典型的函数声明

function slide(arguments){ 
//...code
}

(2)以函数表达式的形式定义函数

var slide = function(arguments){
//...code
}

虽然上面两种方式逻辑上是等价的,但是还是有点小区别:

区别一:例一中的函数会在代码执行以前被加载到作用域中,而例二则是在代码执行到那一行的时候才会有定 义;
区别二:函数声明会给函数指定一个名字,而函数表达式则是创建一个匿名函数,然后将这个匿名函数赋给一个变量;

看下面例子:

function factorial(num){
if(num<=1){
return 1;
}
else {
return num*arguments.callee(num-1);
}
}
var anotherFactorial = factorial;
factorial = null;
console.log(anotherFactorial);//输出factorial(){},有函数名
若是以函数表达式定义
var factorial = function(num){
//...code
}
//...code
console.log(anotherFactorial);//输出function(){},匿名函数

以上这篇JS函数定义方式的区别介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
打开超链需要“确认”对话框的方法
Mar 08 Javascript
JS处理VBArray的函数使用说明
May 11 Javascript
再谈ie和firefox下的document.all属性
Oct 21 Javascript
JQuery操作单选按钮以及复选按钮示例
Sep 23 Javascript
基于DOM节点删除之empty和remove的区别(详解)
Sep 11 Javascript
详解vue静态资源打包中的坑与解决方案
Feb 05 Javascript
使用JS判断移动端手机横竖屏状态
Jul 30 Javascript
vue项目部署到Apache服务器中遇到的问题解决
Aug 24 Javascript
Vuex新手的理解与使用详解
May 31 Javascript
angularjs请求数据的方法示例
Aug 06 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
Aug 23 Javascript
VSCode 配置uni-app的方法
Jul 11 Javascript
基于javascript制作经典传统的拼图游戏
Mar 22 #Javascript
javascript函数命名的三种方式及区别介绍
Mar 22 #Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
Nov 25 #Javascript
JS中多种方式创建对象详解
Mar 22 #Javascript
基于jquery实现无限级树形菜单
Mar 22 #Javascript
javascript的几种继承方法介绍
Mar 22 #Javascript
基于javascript实现文字无缝滚动效果
Mar 22 #Javascript
You might like
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
JavaScript语言中的Literal Syntax特性分析
2007/03/08 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
详解angular element()方法使用
2017/04/08 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
2020/06/05 Javascript
JS如何生成动态列表
2020/09/22 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python调用新浪微博API项目实践
2014/07/28 Python
讲解Python中fileno()方法的使用
2015/05/24 Python
学习python类方法与对象方法
2016/03/15 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
python logging 重复写日志问题解决办法详解
2020/08/04 Python
详解anaconda安装步骤
2020/11/23 Python
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
酒店总经理工作职责
2013/12/13 职场文书
员工保密承诺书
2014/05/28 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS