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 ...
随机推荐
- Alpha版本展示
一.团队成员的简介和个人博客地址,团队的源码仓库地址. 1.团队的源码仓库地址 我们主要通过码云来管理代码,码云地址:https://gitee.com/ljl36/team_programming ...
- <div class="clear"></div>
<div class="clear"></div> 这里的clear是样式名.样式写在CSS文件中 从名称来看估计你的样式为:.clear {clear:b ...
- STM32 IAP docs
/********************************************************************************* * STM32 IAP docs ...
- 【linux基础】vim多窗口功能
前言 实现多个文档文件在同一个屏幕上显示多个窗口. 实现过程 在指令列模式输入『:sp {filename}』即可!那个 filename 可有可无, 如果想要在新窗口启动另一个文件,filename ...
- 一年内自学MIT的33门课? 疯狂学习有方法
[导读]能快速掌握复杂信息,对成就卓越事业至关重要.ScottYoung的学习过程不只适用于学生,同样有助于学习复杂技能的专业知识. 能快速掌握复杂信息,对成就卓越事业至关重要.ScottYoung的 ...
- CTF-练习平台-Misc之 宽带信息泄露
七.宽带信息泄露 下载文件发现是bin文件,题目又说是宽带,所以用工具RouterPassView,打开工具 打开bin文件 快捷键:Ctrl+F搜索username 找到宽带用户名了.
- 【知识笔记】ASP.NET报错问题
一.前端asp.net在远程部署到IIS时报错:Web 部署任务失败,在远程计算机上处理请求时出错 服务器在处理请求时遇到问题.请与服务器管理员联系以了解详细信息((2017/6/16 16:22:4 ...
- 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.2 agenda-group
转载:https://blog.csdn.net/wo541075754/article/details/75332720 agenda-group 规则的调用与执行是通过StatelessKieSe ...
- Android开发小问题解决汇总
1.从命名文件时报“Read-only file system”255|shell@jacinto6evm:/vendor/lib/hw $ sushell@xxx:/system/vendor/li ...
- ImportTsv-HBase数据导入工具
一.概述 HBase官方提供了基于Mapreduce的批量数据导入工具:Bulk load和ImportTsv.关于Bulk load大家可以看下我另一篇博文. 通常HBase用户会使用HBase A ...