javascript 中的函数声明和函数表达式区别
函数声明格式:
function add(a, b) {
alert(a+b);
}
函数表达式格式:
var add = function (a, b) {
alert(a+b);
}
解析器在向环境中加载数据时,对函数表达式和函数声明就像一个男人对原配和对小三.当然是先满足原配,在去照顾小三.解析器会通过"函数声明提升过程",读取并将函数声明添加到执行环境中.
所以声明函数的代码在调用他的代码的后面,也能正常执行.但是函数表达式就没有这个待遇了.当一个男人先满足小三,再去满足自己的老婆,肯定是要出问题的啦
//可以正确执行
add(1, 3);
function add(a, b) {
alert(a+b);
}
//不可以正确执行,报错: add is not a function;
add(1, 3);
var add = function (a, b) {
alert(a+b);
}
函数声明在火狐,苹果,谷歌和欧鹏下还有一个非标准的name属性,通过这个属性可以访问到给函数指定的名字.
function add() { }
alert(add.name);//add
javascript 中的函数声明和函数表达式区别的更多相关文章
- 【JavaScript】Javascript中的函数声明和函数表达式
Javascript有很多有趣的用法,在Google Code Search里能找到不少,举一个例子: <script> ~function() { alert("hello, ...
- javascript中函数声明与函数表达式的区别
javascript中声明函数的方法有两种:函数声明式和函数表达式.究竟他们用起来有什么区别呢? 区别如下: (1).以函数声明的方法定义的函数,函数名是必须的,而函数表达式的函数名是可选的. (2) ...
- javascript中函数声明和函数表达式浅析
记得在面试腾讯实习生的时候,面试官问了我这样一道问题. //下述两种声明方式有什么不同 function foo(){}; var bar = function foo(){}; 当初只知道两种声明方 ...
- JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别
函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...
- 详解Javascript 函数声明和函数表达式的区别
Javascript Function无处不在,而且功能强大!通过Javascript函数可以让JS具有面向对象的一些特征,实现封装.继承等,也可以让代码得到复用.但事物都有两面性,Javascrip ...
- javascript 函数声明与函数表达式的区别
先看一段代码 var f = function g() { return 1; }; if (false) { f = function g(){ return 2; }; } alert(g()); ...
- Javascript函数声明与函数表达式
在定义函数时,我们一般使用下面这两种方法: 使用函数声明定义: function sum (a, b) { return a + b; } 使用函数表达式定义: var sum = function ...
- javaScript的函数(Function)对象的声明(@包括函数声明和函数表达式)
写作缘由: 平时再用js写函数的时候,一般都是以惯例 function fn () {} 的方式来声明一个函数,在阅读一些优秀插件的时候又不免见到 var fn = function () {} 这种 ...
- JavaScript的函数声明与函数表达式的区别
1)函数声明(Function Declaration); // 函数声明 function funDeclaration(type){ return type==="Declaration ...
- 转载 JavaScript的函数声明与函数表达式的区别
1)函数声明(Function Declaration); // 函数声明 function funDeclaration(type){ return type==="Declaration ...
随机推荐
- Redis学习第五课:Redis Set类型及操作
Set是集合,它是string类型的无序集合.set是通过hash table实现的,添加.删除和查找的复杂度都是O(1). 对集合我们可以取并集.交集.差集.通过这些操作我们可以实现SNS中的好友推 ...
- UI基础:UITextField 分类: iOS学习-UI 2015-07-01 21:07 68人阅读 评论(0) 收藏
UITextField 继承自UIControl,他是在UILabel基础上,对了文本的编辑.可以允许用户输入和编辑文本 UITextField的使用步骤 1.创建控件 UITextField *te ...
- Learning from delayed reward (Q-Learning的提出) (Watkins博士毕业论文)(建立了现在的reinforcement Learning模型)
最近在在学习强化学习方面的东西, 对于现有的很多文章中关于强化学习的知识很是不理解,很多都是一个公式套一个公式,也没有什么太多的解释,感觉像是在看天书一般,经过了较长时间的挣扎最后决定从一些基础的东西 ...
- linux用户添加到多个组
usermod -G groupname username (这种会把用户从其他组中去掉,只属于该组)如:usermod -G git git (git只属于git组) usermod -a -G g ...
- 最小二乘法 及 梯度下降法 分别对存在多重共线性数据集 进行线性回归 (Python版)
网上对于线性回归的讲解已经很多,这里不再对此概念进行重复,本博客是作者在听吴恩达ML课程时候偶然突发想法,做了两个小实验,第一个实验是采用最小二乘法对数据进行拟合, 第二个实验是采用梯度下降方法对数据 ...
- C程序第四次作业
作业要求一 实践最简答的项目wordcount,必须完成其中的基本功能,若可以完成其他功能给予加分.完成后请将你的设计思路.主要代码写在本次作业博客里. 设计思路: 第一步:定义文件型指针变量fp,整 ...
- PNotes – 目前最优秀的桌面便签软件 - imsoft.cnblogs
Pnotes: 下载链接: http://pan.baidu.com/s/1o6FK4SM 密码: n7il 便携版,包含中文语音包,包含十几种合适的皮肤. 更多信息:小众软件 http://www. ...
- 【HAOI2008】玩具命名
水题大失败 原题: 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使得自 ...
- javascript的单例模式
单例模式是javascript最基本,最有用的模式之一,它提供了一种将代码组织为一个逻辑单元的手段,这个逻辑单元中的代码通过单一的变量进行访问.我的理解是在这个作用域中,只有通过单一的变量来访问,不存 ...
- 利用GPU改善程序性能的一点心得
1. 硬件方面 a. 流处理器个数 Gpu内部的计算单元个数,决定分析模块实时性的关键因素. 实测效果: gtx760 1152个 Gtx960 1024个 单路1080p运动 ...