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 變數生命週期在它宣告時初始化。 局部變數在函數執行完畢後銷毀。 全域變數在頁面關閉後銷毀。 函數參數
函數參數只在函數內作用,是局部變數。
新建檔案
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
<script type="text/javascript">
var a =1;
function test(){
alert(a); //a为undefined! 这个a并不是全局变量,这是因为在function scope里已经声明了(函数体倒数第4行)一个重名的局部变量,
//所以全局变量a被覆盖了,这说明了Javascript在执行前会对整个脚本文件的定义部分做完整分析,所以在函数test()执行前,
//函数体中的变量a就被指向内部的局部变量.而不是指向外部的全局变量. 但这时a只有声明,还没赋值,所以输出undefined。
a=4
alert(a); //a为4,没悬念了吧? 这里的a还是局部变量哦!
var a; //局部变量a在这行声明
alert(a); //a还是为4,这是因为之前已把4赋给a了
}
test();
alert(a); //a为1,这里并不在function scope内,a的值为全局变量的值
</script>
</head>
<body>
</body>
</html>
預覽
Clear
- 課程推薦
- 課件下載
課件暫不提供下載,工作人員正在整理中,後期請多關注該課程~ 















