JavaScript 中变量被建议在代码顶端声明,本来想试验一下变量声明的作用域问题,不想顺便牵扯出了有关函数声明的区别。上代码:
...{
f();
function f(){
alert('f');
}
}
话说本想这里的运行结果应该出个undefined 之类的,但是却出乎意料的弹出个'f' ;改成这样声明 f 函数:
...
var f = function(){
alert('f');
}
...
就达到了想象的效果,undefined。
声明变量在头部的理论是没有错的,倒出了函数声明方式不同的知识漏洞。经常会有种面试题拿来叫你答:
var f = function (){
alert(1);
};
function f(){
alert(2);
}
f();
// 请问会结果是几?
这些问题的答案是,两种声明函数的方式加载的时间段不同,前者(var)是在运行时加载的,而后者则是在“解释期”被加载,是在第一中方式之前。此处不敢掠美,是从这里看来的。XD
至于“解释期”和“执行期”的细节问题就不得而知了,关于引擎对js解释的细节过程还需要再深入研究,也恳求高手不吝赐教。
分享到:
相关推荐
javascript中声明函数的方法有两种:函数声明式和函数表达式. 区别如下: 1).以函数声明的方法定义的函数,函数名是必须的,而函数表达式的函数名是可选的. 2).以函数声明的方法定义的函数,函数可以在函数声明之前调用,...
在ECMAScript中,有两个最常用的创建函数对象的方法,即使用函数表达式或者使用函数声明。对此,ECMAScript规范明确了一点,即是,即函数声明 必须始终带有一个标识符(Identifier),也就是我们所说的函数名,而...
JavaScript的函数声明与应用
代码如下: var a; // 声明一个变量,标识符为a function a() { // 声明一个函数,标示符也为a } alert(...即函数声明优先于变量声明。 我们把代码稍作修改,声明a时同时赋值。 代码如下: function a() { } v
javascript函数的解释,解释了具体函数的功能,一、函数JavaScript函数集合 1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:...
给大家分享了关于JavaScript中函数声明与变量声明之间的区别以及相关知识点,有兴趣的朋友参考下。
javascript中声明函数的方法有两种:函数声明式和函数表达式. 区别如下: 1).以函数声明的方法定义的函数,函数名是必须的,而函数表达式的函数名是可选的. 2).以函数声明的方法定义的函数,函数可以在函数声明之前调用,...
本文向大家展示了javascript中函数声明和函数表达式的概念及区别,介绍的非常全面,也很详尽,这里推荐给大家
主要介绍了JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同的相关资料,需要的朋友可以参考下
解答这个问题,就需要我们理解 Javascript 中函数表达式与函数声明的概念。 函数定义带来的错误 虽然 function () {…} 看上去像是一个函数声明,但是由于没有函数名,它的本质其实是一个函数表达式。我们看下规范中...
在ECMAScript中,有两个最常用的创建函数对象的方法,即使用函数表达式或者使用函数声明。对此,ECMAScript规范明确了一点,即是,即函数声明 必须始终带有一个标识符(Identifier),也就是我们所说的函数名,而...
函数声明提升高于变量声明 //同时声明变量a和函数a var a; function a() {} alert(typeof a); //显示的是"function",初步证明function的优先级高于var。 //先声明函数后声明变量,证明上边的例子不是...
在阐述为什么之前,让我们先来明确Javascript中的两个概念:函数声明和函数表达式: 先来看看什么样的是函数声明: [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 再来看看什么样的是函数表达式: [Ctrl+A ...
JavaScript程序设计
函数和作用域是JavaScript的重要组成部分,我们在使用JavaScript编写程序的过程中经常...函数声明: function funcDeclaration(){ return 'A is a function'; } 函数表达式: var funExpression=function(){ return 'A
此函数在程序使用中没有必要任何的版权声明,但是如果在网站、论坛或者博客中转载的话,希望能写明原作者为Lvivi,谢谢! ================ 我已经有24分了,谁能告诉我怎么样修改资源分 ================ 已经...