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