国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JScript中的隱式變量聲明和var變量聲明

2019-11-18 12:28:19
字體:
來源:轉載
供稿:網友

  以前一直沒注重到JScript中隱式變量聲明和var顯式變量聲明的區別,雖然其間碰到一些問題,但沒有引起太大的注重。直到今天寫了幾個函數,查了一下參考手冊,覺得有必要改變一下傳統隱式聲明的習慣做法,以免帶來不必要的麻煩。在手冊中是這樣描述“變量聲明”的:
  
  變量在腳本中的第一次出現是在聲明中。變量在第一次用到時就設置于內存中,便于后來在腳本中引用。使用變量之前先進行聲明。可以使用 var 要害字來進行變量聲明。
  
  var count; // 單個聲明。
  var count, amount, level; // 用單個 var 要害字聲明的多個聲明。
  var count = 0, amount = 100; // 一條語句中的變量聲明和初始化。
  假如在 var 語句中沒有初始化變量,變量自動取 JScript 值 undefined。盡管并不安全,但聲明語句中忽略 var 要害字是合法的 JScript 語法。這時,JScript 解釋器給予變量全局范圍的可見度。當在過程級中聲明一個變量時,它不能用于全局范圍;這種情況下,變量聲明必須用 var 要害字。
  
  這里對“過程級聲明變量的范圍”顯然沒有說明白,也許是中英文翻譯的問題。讓我們來看一個實例:
  
  function foo1(){
  for(i=0;i<10;i++) ;
  }
  
  function foo2(){
  alert(i);
  }
  
  foo1();
  foo2(); 猜猜這樣會有什么輸出?還是錯誤?
  事實是彈出一個對話框:10。但是假如先調用foo2()或把foo1()改成這樣:
  function foo1(){
  var i;
  for(i=0;i<10;i++) ;
  }
  卻是什么都沒有出現,而是一個腳本錯誤的提示:“i is undefined”。
  
  所以我們可以看出,假如在函數中隱式聲明了某個變量,那該變量將成為全局變量!像原foo1()函數中的變量i,循環后的值10將被保留,在foo2中就顯示出來了。但是,假如在foo1()中用var顯示聲明了i,那它就是函數級的局部變量,在調用foo2()時自然無法找到i了。
  
  看來在寫JScript時雖然系統答應隱式變量聲明使用,但我們還是應該進行顯式的變量聲明,尤其是對習慣的循環變量等,以保證它的使用范圍。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中西区| 巨野县| 二连浩特市| 合作市| 大同县| 金昌市| 错那县| 邮箱| 林西县| 光泽县| 丹巴县| 石阡县| 花垣县| 怀化市| 郧西县| 尚志市| 和田县| 五峰| 罗定市| 扬州市| 闸北区| 剑川县| 临邑县| 出国| 漳州市| 丹寨县| 六盘水市| 民勤县| 长阳| 兴文县| 泸州市| 巴里| 府谷县| 亚东县| 正阳县| 东乌珠穆沁旗| 奉新县| 江阴市| 英山县| 南木林县| 宁海县|