浅谈JS函数定义方式的区别


Posted in Javascript onOctober 30, 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 相关文章推荐
HTA版JSMin(省略修饰语若干)基于javascript语言编写
Dec 24 Javascript
javascript setTimeout和setInterval计时的区别详解
Jun 21 Javascript
ext前台接收action传过来的json数据示例
Jun 17 Javascript
理解javascript中的回调函数(callback)
Sep 02 Javascript
node.js中的fs.rename方法使用说明
Dec 16 Javascript
javascript判断并获取注册表中可信任站点的方法
Jun 01 Javascript
利用JavaScript阻止表单提交的两种方法
Aug 11 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
Mar 09 Javascript
使用vue-resource进行数据交互的实例
Sep 02 Javascript
vue父子组件间引用之$parent、$children
May 20 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
Jul 21 Javascript
JavaScript使用canvas绘制坐标和线
Apr 28 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
Oct 30 #Javascript
原生js代码实现图片放大境效果
Oct 30 #Javascript
Angular2 多级注入器详解及实例
Oct 30 #Javascript
Javascript 跨域知识详细介绍
Oct 30 #Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
Oct 30 #Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
Oct 30 #Javascript
js模式化窗口问题![window.dialogArguments]
Oct 30 #Javascript
You might like
PHP扩展编写点滴 技巧收集
2010/03/09 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
javascript String 对象
2008/04/25 Javascript
js cookies实现简单统计访问次数
2009/11/24 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
AngularJS动态绑定HTML的方法分析
2016/11/07 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
Flask之flask-script模块使用
2018/07/26 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
python 中如何获取列表的索引
2019/07/02 Python
Python换行与不换行的输出实例
2020/02/19 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
新英格兰最大的特色礼品连锁店:The Paper Store
2018/07/23 全球购物
Shell编程面试题
2016/05/29 面试题
会计专业推荐信
2013/10/29 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
文明之星事迹材料
2014/05/09 职场文书
淘宝活动总结范文
2014/06/26 职场文书
毕业生自荐信范文
2015/03/05 职场文书
法学专业求职信范文
2015/03/19 职场文书
详解Python内置模块Collections
2022/03/22 Python
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript