问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

var a=function和function a有什么区别

发布网友 发布时间:2022-04-22 22:18

我来回答

3个回答

懂视网 时间:2022-04-23 02:40

这篇文章主要介绍了JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍,需要的朋友可以参考下

某天写代码突然县道这个问题,顺势总结一波

JavaScript 函数和变量声明的“提前”(hoist)行为

简单的说 如果我们使用 匿名函数

var a = {}

这种方式, 编译后变量声明a 会“被提前”了,但是他的赋值(也就是a)并不会被提前。

也就是,匿名函数只有在被调用时才被初始化。

如果使用

function a () {};

这种方式, 编译后函数声明和他的赋值都会被提前。

也就是说函数声明过程在整个程序执行之前的预处理就完成了,所以只要处于同一个作用域,就可以访问到,即使在定义之前调用它也可以。

看一个例子

我们会发现alert(hereOrThere) 语句执行时会alert('there')!这里的行为其实非常出乎意料,主要原因是JavaScript 函数声明的“提前”行为,简而言之,就是Javascript允许我们在变量和函数被声明之前使用它们,而第二个定义覆盖了第一种定义。换句话说,上述代码编译之后相当于

我们期待的行为

这段程序编译之后相当于:

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

vue2.0 实现页面导航提示引导的方法

vue2.0 根据状态值进行样式的改变展示方法

使用Vuex实现一个笔记应用的方法

热心网友 时间:2022-04-22 23:48

一、调用顺序不同

1、var a=function:匿名函数的定义方法,若是在定义之前调用了,系统会报错。

2、function a:该方法的定义是全局性的,就算在调用之后定义,系统也不会报错。

二、初始化不同

1、var a=function:只用运行到这个方法时才能对变量a进行初始化,若是没有对变量a初始化,则会报错。此时,a代表后面匿名函数的返回值。

2、function a:系统在执行到该方法时再去找该方法的定义位置进行初始化。


三、特点不同

1、var a=function:在javascript中,方法被当作一个类来处理,这中定义方式下,a即带表了这个方法的类,也就是这个方法本身。

2、function a:若是在该方法中,返回值为数组、方法、或是别的类,那么a不在表示该方法,而是表示返回的新类了。


参考资料来源:百度百科-Function函数

参考资料来源:百度百科-Function

热心网友 时间:2022-04-23 01:06

//代码一:
a(1);    //执行这个会报错
var a = function(index){
    alert(index);
}
a(2);    //执行这个不会报错

//代码二:
a(1);    //执行这个不会报错
function a(index){
    alert(index);
}
a(2);    //执行这个不会报错

原因:JavaScript 函数和变量声明的“提前”(hoist)行为。

区别一:代码一,加载js 代码之后 a 被 “提前",但是 function 里面的具体内容不会被提前。就是在调用    的时候就会去初始化 function 里面的代码块。代码二:加载的时候就 “提前”了。

//代码一: js 作用域污染
function a() { //function statement
  return '1';
}
alert(a()); // alerts '3'
function a() {
  return '3';
}

//代码二:
var a= function() { // function expression
  return '1';
};
alert(a()); // alerts '3'
a= function() {
  return '1';
};

强烈推荐看下 :

http://www.hu.com/question/19878052

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
做了好乱的梦,求解! ae缺少p1效果是要装什么插件? ...荣耀》中“网络诊断”居然可以测定酒店有无摄像头,这是好事吗? 七叶一枝花花苞里面的红米是什么 q了是什么意思? ...Q就可以,格式也没错,也只几十K,别人发给我都可以,哪里出问题了... 显的么说友Q在微 ?Q上新示怎让在说我空里动间的态不更好博 诺诗兰户外品牌怎么样 新隋唐英雄传张卫健萧妃是刘小庆吗 红尖椒和朝天椒介绍!红尖椒和朝天椒哪个辣? 小米5可以刷windos系统吗 定位中型SUV,2.0T+8AT,驭胜S350指导价15.98万起 小米5刷哪个系统最好 小米手机怎么下载系统 淮安地区2020款驭胜S350最高优惠2000元!轴距2750mm,配2.0T 现在小米5刷什么系统好 小米5能刷其它系统吗 17年汽油的江铃驭胜s350缸内直喷2.0T的高压控制压力是多少 小米5刷稳定版的哪个版本好 求东奔西顾的《只想和你好好的》完结版txt 求东奔西顾的只想和你好好的txt 只想和你好好的txt 谁有东奔西顾的《只想和你好好的》txt,百度云地址,谢谢啦 如何引领学生选择正确的价值观 关于坚持以社会主义核心价值观引领文化各色制度? 如何用社会主义价值观引领中国的多样化思潮 大学生健康成长需要正确价值观的引领是因为什么? 巜纲要》为什么强调社会主义核心价值观的引领? 如何践行社会主义核心价值观,引领社会风尚 请结合社会案例谈社会主义核心价值观如何发挥支撑、引领、定向的作用? 江铃驭胜s3502,0t汽油版是什么牌孑发动机 怎样把发在美篇上的错别字改正过来? 江铃驭胜S350汽油2.0T手动,到了零下十五度左右就挂挡困难,双手握挡用力可以入档? 有没有哪位把小米5刷成wp10系统的 考研东北大学好考吗 江铃驭胜S350汽油发动机是哪里生产的? 小米5高配版能刷魅族7的系统吗 考研考东北大学的难度很高吗?怎样评价? 东北师范大学研究生好考吗? 驭胜s350汽车2.0t汽油机是福特的吗?和憾路者是同一种发动机吗? 东北大学秦皇岛分校研究生好考吗? 雅化集团股票走势压力位怎么看?雅化集团战略及业务分析?002497 雅化集团价值? 驭胜s350,2.0t有多少匹马力 东北大学的研究生好考吗? 东北大学考研难吗 东北农业大学考研难吗 东北林业大学考研好考吗 考研考东北大学很难吗 股票雅化集团下一步走势?雅化集团公司偿债能力分析?雅化集团股票最新点评? 东北财经大学保险学研究生好考吗