JavaScript 作用域
JavaScript 作用域
在 JavaScript 中, 物件和函數同樣也是變數。
在 JavaScript 中, 作用域為可存取變量,對象,函數的集合。
JavaScript 函數作用域: 作用域在函數內修改。
在JavaScript中,用var申明的變數其實是有作用域的。
如果一個變數在函數體內部申明,則該變數的作用域為整個函數體,在函數體外不可引用該變數:
'use strict';function foo () {
var x = 1;
x = x + 1;
}
##x = x + 2; // ReferenceError!無法在函數體外引用變數x
'use strict';function foo() { var x = 1;
x = x + 1;
}function bar() {
var x = 'A';
x = x + 'B';
}
// 此處無法呼叫carName 變數
function myFunction() {
var carName = "Volvo";
// 函數內可呼叫carName 變數
#}
注意:
因為局部變數只作用於函數內,所以不同的函數可以使用相同名稱的變數。 局部變數在函數開始執行時創建,函數執行完後局部變數會自動銷毀。全域作用域#
不在任何函數內定義的變數就具有全域作用域。實際上,JavaScript預設有一個全域物件window,全域作用域的變數實際上被綁定到window的一個屬性:
'use strict';
##var course = 'Learn JavaScript';
alert(course); // 'Learn JavaScript'
alert(window. course); // 'Learn JavaScript'
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>全局变量在任何脚本和函数内均可访问。</p> <p id="demo"></p> <script> var carName = "Volvo"; myFunction(); function myFunction() { document.getElementById("demo").innerHTML = "这里是 " + carName; } </script> </body> </html>JavaScript 變數生命週期JavaScript 變數生命週期在它宣告時初始化。 局部變數在函數執行完畢後銷毀。 全域變數在頁面關閉後銷毀。
函數參數
函數參數只在函數內作用,是局部變數。