JavaScript 做用域

JavaScript  做用域ide

1. JavaScript 以函數做爲做用域函數

function func(){
    if(1==1){
        var name = 'xsk'
    }
    console.log(name);
}
func()
JavaScript: 以函數作爲做用域

2. 函數做用域在函數未被調用以前,已經建立spa

function func(){
    if(1==1){
        var name = 'xsk'
    }
    console.log(name);
}
JavaScript:函數做用域提早建立

3. 函數的做用域在做用域鏈,而且也是在被調用以前建立code

示例一:
--------------------------------------------------
xo = "xsk";
function func(){
    var xo = "miy"
    function inner(){
        var xo = "nn"
        console.log(xo)
    }
    inner()
}
func()
// 輸出 nn

示例二:
--------------------------------------------------
xo = "xsk";
function func(){
    var xo = "miy"
    function inner(){
        console.log(xo)
    }
    return inner;
}
var ret = func()
// 輸出miy
// ret 至關於 inner()函數

示例三:
--------------------------------------------------
xo = "xsk";
function func(){
    var xo = "miy"
    function inner(){
        console.log(xo)
    }
    var xo = "tony"
    return inner;
}
var ret = func()
ret()
// 輸出tony
JavaScript:做用域鏈提早建立

注:做用域嵌套做用域被稱爲做用域鏈。
注:查找變量會優先在本地做用域找,沒有在跳到下一級。blog

4. 函數內局部變量提早聲明ip

示例一:
--------------------------------------------------
function func(){
    console.log(xxoo);
}
func();
// 報錯

示例二:
--------------------------------------------------
function func(){
    console.log(xxoo);
    var xxoo = 'xsk'
}
func();
// 輸出 undefined
// 函數執行順序,誰在前面誰執行
JavaScript:函數局部變量提早聲明

(1)、JavaScript 當建立一個函數時,會自動生動生成做用域鏈。
(2)、生成做用域的同時會找到全部的局部變量提早聲明。(var 變量名)
(3)、爲賦值的局部變量默認爲undefined。作用域

相關文章
相關標籤/搜索