實際運行的狀況是以下函數
function f1() {
-- var scope ;spa
console.log(scope) ;
var scope = 'local' ;
console.log(scope)
}
f1();
備註:
聲明提早了,而賦值語句沒有改變位置
因爲第一個變量scope在函數中第一次使用以前已經聲明瞭,因此能夠使用,
可是因爲沒有賦值,因此打印出來的值爲undefinedblog
js中的函數聲明提高到外部腳本,或外部做用域的頂部作用域
因此上面的代碼類型於
function f1(name) {
console.log(name );
}
f1('name') ;
備註
至關於將函數定義提早了
io
函數表達式建立法
以下圖console
至關於function
var f2 ;變量
f2('name') ;
f2 = function(name) {
console.log('什麼節能快要到了!') ;
}語法
變量聲明提早了,賦值語句沒有變位置,由於函數沒有定義,因此報錯im
2018-03-30 21:12:30