浅谈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 相关文章推荐
Javascript操纵Cookie实现购物车程序
Nov 23 Javascript
Mootools 1.2教程 正则表达式
Sep 15 Javascript
下载文件个别浏览器文件名乱码解决办法
Mar 19 Javascript
JS验证邮箱格式是否正确的代码
Dec 05 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
Jun 19 Javascript
IE浏览器不支持getElementsByClassName的解决方法
Aug 27 Javascript
JS实现网页标题随机显示名人名言的方法
Nov 03 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
Nov 21 Javascript
ReactNative短信验证码倒计时控件的实现代码
Jul 20 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
Nov 22 Javascript
Vue.js 无限滚动列表性能优化方案
Dec 02 Javascript
js+canvas实现纸牌游戏
Mar 16 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压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
Python中计算三角函数之cos()方法的使用简介
2015/05/15 Python
Python实现线程池代码分享
2015/06/21 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
Python socket 套接字实现通信详解
2019/08/27 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
英国著名书店:Foyles
2018/12/01 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
大学军训感想
2014/02/12 职场文书
爱之链教学反思
2014/04/30 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
丽江古城导游词
2015/02/03 职场文书
英语辞职信怎么写
2015/02/28 职场文书
用Python将库打包发布到pypi
2021/04/13 Python
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
Spring整合Mybatis的全过程
2021/06/28 Java/Android
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers