js中创建一个function的2种方法哪个好?

如下图,看到好多人写function的时候,都用var aa=function(){}的形式,这是为什么呢?是性能可以提升一些吗?求指教~

https://img.mukewang.com/5bb8a0f60001e48002000279.jpg

Qyouu
浏览 807回答 1
1回答

慕尼黑8549860

这两种是有区别的,一种是函数声明,一种是函数表达式。函数声明:funName()//正常执行function funName(){    //code}函数表达式:funName()//报错var funName=function(){    //code}解析器在向执行环境加载数据时,对这两种是有区别的,解析器会率先读取函数声明,以确保在执行任何代码之前可以访问,而函数表达式,则必须等到解析器执行到他所在的代码才会被真正执行。另外除了这一点区别,函数声明与函数表达式的语法其实是等价的。至于使用哪种就看题主自身的情况来决定,比如:if(flag){    function sayHi(){         alert("Hi");     } }else{    function sayHi(){         alert("Yo");     } }上面代码希望,在flag为true的时候,调用sayHi时弹出Hi,而false时则弹出Yo,但实际上这在javascript中属于无效代码,大多浏览器会使用第二个函数声明,忽略flag。可以使用以下写法:var sayHiif(flag){     sayHi=function(){         alert("Hi");     } }else{     sayHi=function(){         alert("Yo");     } }这种写法就不会有什么意外,根据flag的不同,sayHi所弹出的内容也会出现变化。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript