为了账号安全,请及时绑定邮箱和手机立即绑定

var a=function(){}和function a(){}有什么区别

function b(){

document.write("aa");

}

var a=function(){

document.write("123");

}


b();

a();



好像没什么区别

正在回答

4 回答

b();

a();

function b(){

document.write("aa");

}

var a=function(){

document.write("123");

}

这样再运行一下就有区别了

function b(){} 为函数声明,程序运行前就已存在;var a = function(){} 为函数表达式,属于按顺序执行,所以a为undefined


9 回复 有任何疑惑可以回复我~
#1

榎目贵音 提问者

非常感谢!简单易懂!
2016-03-30 回复 有任何疑惑可以回复我~

我刚就遇到这个问题,function a(){}属于封装函数,这个可以写在调用之后,但是var a = function (){}; 这个就必须写在调用a之前

2 回复 有任何疑惑可以回复我~

简单的说就是定义一个变量,把函数体传给变量;就像无论你用var a 还是 a都能被识别一样,个人观点

0 回复 有任何疑惑可以回复我~

var a = function() {

  函数体:

  }:

此时函数体本身作为变量存在,因此在浏览器进行执行前处理时并不把他加载在window对象的属性中,而是在程序执行过程中执行到变量赋值时才加载到window对象的属性中。

function a () {}

程序执行:按照从上到下的顺序执行,

  一旦用到变量,则变量名存入到堆内存,变量值存入到栈内存,此时内存回收程序员是无法控制的,只能等待浏览器回收。

  一旦执行函数,函数进入到栈内存中,函数的变量被加载到栈内存中,函数执行后,马上释放栈内存。


4 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

var a=function(){}和function a(){}有什么区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信