JavaScript 做用域ide
1. JavaScript 以函數做爲做用域函數
function func(){
if(1==1){
var name = 'xsk'
}
console.log(name);
}
func()
2. 函數做用域在函數未被調用以前,已經建立spa
function func(){
if(1==1){
var name = 'xsk'
}
console.log(name);
}
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
注:做用域嵌套做用域被稱爲做用域鏈。
注:查找變量會優先在本地做用域找,沒有在跳到下一級。blog
4. 函數內局部變量提早聲明ip
示例一:
--------------------------------------------------
function func(){
console.log(xxoo);
}
func();
// 報錯
示例二:
--------------------------------------------------
function func(){
console.log(xxoo);
var xxoo = 'xsk'
}
func();
// 輸出 undefined
// 函數執行順序,誰在前面誰執行
(1)、JavaScript 當建立一個函數時,會自動生動生成做用域鏈。
(2)、生成做用域的同時會找到全部的局部變量提早聲明。(var 變量名)
(3)、爲賦值的局部變量默認爲undefined。作用域