js函數(shù)和變量提升哪個(gè)優(yōu)先 JS:聲明函數(shù)時(shí)里面的參數(shù)是不是必須寫(xiě)?
JS:聲明函數(shù)時(shí)里面的參數(shù)是不是必須寫(xiě)?VaR聲明的變量的作用域不是當(dāng)前函數(shù)聲明的變量。如果直接賦值,變量將自動(dòng)創(chuàng)建,但作用域是全局的。///--functiondosth(){a=“AAA”}dos
JS:聲明函數(shù)時(shí)里面的參數(shù)是不是必須寫(xiě)?
VaR聲明的變量的作用域不是當(dāng)前函數(shù)聲明的變量。如果直接賦值,變量將自動(dòng)創(chuàng)建,但作用域是全局的。///--functiondosth(){a=“AAA”}dosth()//運(yùn)行dosthalert(a)//您可以看到“AAA”//--if var//--functiondosth(){vara=“AAA”}dosth()//運(yùn)行dosth一次警報(bào)(a)//錯(cuò)誤
!變量未定義,因?yàn)閐osth中聲明的變量范圍只是一個(gè)dosth函數(shù)。///另外,如果函數(shù)是嵌套的,會(huì)使情況更加復(fù)雜-----在函數(shù)定義中,聲明的函數(shù)參數(shù)作用域就是函數(shù)本身。如果參數(shù)聲明中出現(xiàn)var,則屬于語(yǔ)法錯(cuò)誤
JS函數(shù)定義靈活,不同于其他語(yǔ)言。每個(gè)函數(shù)都作為一個(gè)對(duì)象進(jìn)行維護(hù)和運(yùn)行。我們先來(lái)看看幾個(gè)常見(jiàn)的定義:function func1([parameter]){/*function body*/}var func2=function([parameter]){/*function body*/}var func3=function func4([parameter]){/*function body*/}var func5=new function()。第一種是最常用的,不用說(shuō)。第二種方法是通過(guò)調(diào)用func2([function])將匿名函數(shù)賦給變量。第三種方法是通過(guò)調(diào)用func3([function])或func4([function]),將func4賦給變量func3。第四種方法是將func5聲明為對(duì)象。讓我們看看它們之間的區(qū)別:function(){//function body}//等價(jià)于var func=function(){//function body},但它也是一個(gè)函數(shù)定義,在用法上有一些區(qū)別。第三個(gè)定義可以用同樣的方式理解。定義對(duì)象的第四種方法是在對(duì)象被引用之前聲明它們。