延長作用域:
1:with語句
function buildurl();
//(window/person)with語句可以延長js變數作用域,
//使用var 申名的變數會新增到最近接的環境
//url被新增到buildurl函式環境就是與buildurl環境平級,而不是with語句塊環境
with(window)
return url;
}alert(buildurl()); //結果hello?debug=true;
// 沒有塊級的作用域
2,判斷語句
if(true)
alert(hello); //結果world
if(false)
alert(hello); //結果undefined
// 3,for語句迴圈
//這個i的作用域會存在window執行環境中,alert(window.i); // 結果9
for(var i = 0; i < 9;i++)
function dosomething(i)
alert(i); // 結果9
-- i 變數的作用域只會存在for迴圈外部作用域中,即fun函式塊中
function run()
}function dosomething(i)
run();
alert(i); // 結果 i未定義
//4 try 語句
trycatch(ex)
alert(flag); //結果 true
js延長作用域鏈
雖然執行環境的型別只有全域性函式和區域性函式,但還是有其他辦法來延長作用域的。實現的原理是有些一句可以在作用域的前端臨時加乙個變數物件,該變數物件會在 執行後被移除。有兩種情況可以達到這種效果 try catch語句的catch塊 with語句 上面兩個語句都會在作用域的前端新增乙個變數物件。對wi...
JS函式作用域延長的方法
當 在乙個環境中執行時,會建立變數物件的乙個 作用域鏈 scope chain 作用域鏈的用途,是保證對執行環境有權訪問的所有變數和函式的有序訪問。作用域鏈的前端,始終都是當前執行的 所在環境的變數物件。如果這個環境是函式,則將其 活動物件 activation object 作為變數物件。活動物件...
JS作用域和作用域鏈
什麼是js作用域?js作用域也就是js識別變數的範圍 1 全域性作用域 2 區域性作用域 3 e6的塊級作用域 全域性作用域 也就是定義在window下的變數範圍,在任何地方都可以訪問 區域性作用域 是只在函式內部定義的變數範圍 塊級作用域 簡單來說就是用let和const在任意的 塊中定義的變數都...