亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

聲明沒有var關鍵字的變量

聲明沒有var關鍵字的變量

慕哥9229398 2019-09-02 09:06:51
在w3schools寫道:如果聲明變量而不使用“var”,則變量始終變為GLOBAL。在函數內聲明全局變量是否有用?我可以想象在某個事件處理程序中聲明一些全局變量,但它有什么用呢?更好地使用RAM?
查看完整描述

3 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

忘記var時的副作用


隱含全局變量和明確定義的變量之間存在一個細微差別。區別在于使用delete運算符取消定義這些變量的能力:


?無法刪除使用var創建的全局變量(在任何函數之外的程序中創建的全局變量)。


?可以刪除在沒有var的情況下創建的隱含全局變量(無論是否在函數內創建)。


這表明隱含的全局變量在技術上不是真正的變量,但它們是全局對象的屬性??梢允褂胐elete運算符刪除屬性,而變量不能:


// define three globals

var global_var = 1;

global_novar = 2; // antipattern

(function () {

? ?global_fromfunc = 3; // antipattern

}());

// attempt to delete

delete global_var; // false

delete global_novar; // true

delete global_fromfunc; // true

// test the deletion

typeof global_var; // "number"

typeof global_novar; // "undefined"

typeof global_fromfunc; // "undefined"

在ES5嚴格模式下,對未聲明變量的賦值(例如前面代碼段中的兩個反模式)將引發錯誤。

查看完整回答
反對 回復 2019-09-02
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

全局變量的唯一用途是,如果您需要全局訪問它們。在這種情況下,您應該使用var函數外部的關鍵字來聲明它們,以明確您確實要創建全局變量,并且不要忘記var在嘗試聲明局部變量時。

通常,您應該嘗試對代碼進行范圍調整,以便在全局范圍內盡可能少地使用代碼。您在腳本中使用的全局變量越多,您在另一個腳本中使用它的可能性就越小。

通常,函數中的變量應該是局部變量,以便在退出函數時它們消失。


查看完整回答
反對 回復 2019-09-02
  • 3 回答
  • 0 關注
  • 633 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號