JavaScript中變量的作用域詳解
更新時間:2022年03月10日 16:31:59 作者:.NET開發(fā)菜鳥
本文詳細講解了JavaScript中變量的作用域,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
一、變量的分類
在JavaScript中變量分為兩種:
- 全局變量
- 局部變量
二、變量的作用域
1、局部變量的作用域
局部變量:在函數內部定義的變量稱為局部變量,其作用域為該函數內部,在該函數外部不能被訪問??聪旅娴睦樱?/p>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>局部變量作用域</title> <script> // 定義函數fn function fn(){ var a=5;// 定義局部變量 document.write(a); }; // 調用函數fn fn(); // 定義函數fn2 function fn2(){ document(a); }; // 調用函數fn2 fn2(); </script> </head> <body> </body> </html>
結果:
2、全局變量
全局變量:定義在函數外部的變量稱為全局變量,其作用域是整個JavaScript代碼塊??聪旅娴睦樱?/p>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>全局變量作用域</title> <script> var number; // 全局變量 function fn(){ number=5; document.write("number的值是:"+number+"<br />"); }; function fn2(){ ++number; document.write("number的值是:"+number+"<br />"); } fn(); fn2(); </script> </head> <body> </body> </html>
結果:
注意:
a、如果在函數內定義了和全局變量相同名稱的局部變量,那么在函數內部使用就近原則:即在函數內部局部變量起作用。
看下面的例子:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>全局變量作用域</title> <script> var number; // 全局變量 /* function fn(){ number=5; document.write("number的值是:"+number+"<br />"); }; function fn2(){ ++number; document.write("number的值是:"+number+"<br />"); } */ // 就近原則 function fn(){ var number="我是局部變量"; document.write("number的值是:"+number+"<br />"); }; function fn2(){ number="我是全局變量" document.write("number的值是:"+number+"<br />"); } fn(); fn2(); </script> </head> <body> </body> </html>
結果:
b、全局變量window
如果在定義變量的時候沒有使用var,那么默認是全局變量,無論是在函數外部還是在函數內部定義變量。看下面的例子:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>全局變量作用域</title> <script> var number; // 全局變量 /* function fn(){ number=5; document.write("number的值是:"+number+"<br />"); }; function fn2(){ ++number; document.write("number的值是:"+number+"<br />"); } */ // 就近原則 /* function fn(){ var number="我是局部變量"; document.write("number的值是:"+number+"<br />"); }; function fn2(){ number="我是全局變量" document.write("number的值是:"+number+"<br />"); } fn(); fn2(); */ // windows // 相當于window.a a=12; function fn(){ // 相當于window.b b="我是window對象,是全局變量"; }; fn(); document.write("a="+a+"<br />"); document.write("b="+b+"<br />"); </script> </head> <body> </body> </html>
結果:
c、應盡量避免使用全局變量,以免團隊開發(fā)變量發(fā)生沖突。
以上所述是小編給大家介紹的JavaScript中變量的作用域,希望對大家有所幫助。在此也非常感謝大家對腳本之家網站的支持!
相關文章
表單元素的submit()方法和onsubmit事件應用概述
表單元素擁有submit方法,同時也具有onsubmit事件句柄,用于監(jiān)聽表單提交。可以使用elemForm.submit();方法觸發(fā)表單提交,感興趣的朋友可以了解下,或許對你有所幫助2013-02-02鍵盤 keycode的值 javascript時觸發(fā)事件時很有用的要素
鍵盤keycode的值 編寫javascript時觸發(fā)事件時很有用的要素,大家可以收藏一下。2009-11-11