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

 我来答
床前明月儿
高能答主

2019-12-10 · 探索生活中的另一种可能
床前明月儿
采纳数:101 获赞数:171945

向TA提问 私信TA
展开全部

一、调用顺序不同

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

匿名用户
推荐于2017-11-25
展开全部
//代码一:
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.zhihu.com/question/19878052

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式