javascript
认清JavaScript和JAVA全局变量和局部变量的作用域
認清JavaScript和JAVA全局變量和局部變量的作用域
2010年2月28日 george 發表評論 閱讀評論通過淘寶面試題來認清JavaScript和JAVA全局變量和局部變量的作用域
注意兩者是有嚴重區別的!
| var a = 100; |
| function testResult(){ |
| ??var b = 2 * a; |
| ??var a = 200; |
| ??var c = a / 2; |
| ??alert(b); |
| ??alert(c); |
| } |
| testResult() |
一開始我給出的假設是400和100,可是測試后發現錯了結果應該是NaN和100,讓我百思不得其解,我認為在方法體中a是會被存入內存的,通過尋址找到a,由于全局變量和局部變量同名,全局變量應該失效,所以我很肯定是400和100!但是我錯了!我需要更新我的記憶庫!
1.全局變量和它的作用域
全局變量是指在程序開頭的說明部分定義和說明的量。它的作用域分為兩種情況:
(1)在全局變量和局部變量不同名時,其作用域是整個程序。
(2)在全局變量和局部變量同名時,全局變量的作用域不包含同名局部變量的作用域。
2.局部變量和它的作用域
凡是在子程序內部使用的變量,必須在子程序中加入說明。這種在子程序內部說明的變量稱為局部變量。局部變量的作用域是其所在的子程序。形式參數也只能在子程序中有效。因此也屬于局部變量。局部變量的作用域分為兩種情況:
(1)當外層過程序的局部變量名和嵌套過程中的局部變量不同名時,外層過程的局部變量作用域包含嵌套過琛。
(2)當外層過程的局部變量名和嵌套過程內的局部變量名同名時,外層局部變量名的作用域不包含此過程。
以上是JavaScript,接下來是java的探討
請看圖片:
結果是:
這個結果很清晰的證明在java的方法體中使用的a是等于100的
再看我修改
此時我們發現結果是100000
不難得出結論:
java在同名的變量定義前事使用全局變量的之后就是后定義的!這點和JavaScript是有區別的!
總結
以上是生活随笔為你收集整理的认清JavaScript和JAVA全局变量和局部变量的作用域的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【2016年第1期】基于大数据的玉米田四
- 下一篇: gradle idea java ssm