浅谈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 相关文章推荐
如何快速的呈现我们的网页的技巧整理
Jul 01 Javascript
自动完成JS类(纯JS, Ajax模式)
Mar 12 Javascript
jQuery 常见操作实现方式和常用函数方法总结
May 06 Javascript
JavaScript中使用arguments获得函数传参个数实例
Aug 27 Javascript
node.js中使用socket.io的方法
Dec 15 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
Mar 25 Javascript
javascript中获取元素标签中间的内容的实现方法
Oct 08 Javascript
vue事件修饰符和按键修饰符用法总结
Jul 25 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
Oct 08 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 jQuery
JavaScript实现获取两个排序数组的中位数算法示例
Feb 26 Javascript
浅谈react useEffect闭包的坑
Jun 08 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入门基础之php代码写法
2011/12/30 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
刷新时清空文本框内容的js代码
2007/04/23 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
python访问mysql数据库的实现方法(2则示例)
2016/01/06 Python
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
python按比例随机切分数据的实现
2019/07/11 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
do you have any Best Practice for testing
2016/06/04 面试题
师德师风整改措施
2014/10/24 职场文书
检讨书范文
2019/04/16 职场文书
nginx服务器的下载安装与使用详解
2021/08/02 Servers
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python
Elasticsearch 索引操作和增删改查
2022/04/19 Python