js 延長作用域

2021-06-19 19:09:59 字數 792 閱讀 9990

延長作用域:

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在任意的 塊中定義的變數都...