猿问
js中创建一个function的2种方法哪个好?
如下图,看到好多人写function的时候,都用var aa=function(){}的形式,这是为什么呢?是性能可以提升一些吗?求指教~
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所弹出的内容也会出现变化。
0
0
0
随时随地看视频
慕课网APP
相关分类
JavaScript
我要回答