2016-02-01 241 views
-1

全局變量是否可以在一個js文件中聲明和設置值,在另一個js文件中引用,無論次數多少?javascript - 全局變量

除了html文件,angular.js可以在速度宏文件中使用嗎?

+0

是的,只要其他javascript文件在定義全局的javascript文件後實例化變量。 –

+0

@DanielShillcock你應該把它作爲一個答案之前,它被關閉lol –

+0

嗨丹尼爾...考慮我有一個js文件,只出現在登錄時......我在該文件中創建一個全局變量..在註銷..我打電話給一個不同的JS,並試圖在這裏使用這個全局變量......它會工作嗎? – user2918673

回答

3

如果在一個腳本中定義了一個全局變量,一旦它被原始腳本定義,該頁面中的所有其他腳本都可以使用該變量。 Global是全球性的 - 它可以在該頁面的所有Javascript中使用。

但是,任何Javascript變量只能持續當前頁面的持續時間。只要加載另一個頁面,上一頁中的所有全局變量就消失,並且會創建一個全新的Javascript上下文,並且將由該新頁面中加載的任何腳本初始化。沒有Javascript變量保留從一頁到下一頁的值。

如果您想要保存某個狀態,以便狀態可以跨頁面使用,那麼您必須將該狀態存儲在服務器上(可以從服務器查詢該狀態),cookie中(腳本可以讀取的位置它來自Cookie)或LocalStorage(腳本可以從LocalStorage密鑰讀取它)。

如果你的價值是在一個名爲username變量,那麼你可以存儲和檢索它像這樣:

// store the variable in localStorage 
localStorage.setItem("user", username); 


// and get the value from some other page 
var username = localStorage.getItem("user"); 
+0

好LocalStorage是一個不錯的選擇... – user2918673

+0

@ user2918673 - 請記住,使用LocalStorage時,它就像一個很簡單的數據庫。您可以在那裏存儲某些內容,如果您想在將來的頁面中使用它,則必須從LocalStorage中讀取值以檢索它。另外,請記住,存儲在LocalStorage中的數據只能用於寫入它的域(出於安全和隱私的原因)。 – jfriend00

0

您需要使用localStorage的變量爲:

<script> 
     var v=localStorage.setItem("variable","value"); 
</script> 

這可以說爲全局變量,可在任何其他文件中訪問:

<script> 
     var val=localStorage.getItem("variable"); 
</script> 
0

Fi首先我會說我在評論中所說的內容: 全局變量只能用於在同一頁面加載的javascript。

現在,如果你使用的角度,你應該使用一個常量(例如:http://twofuckingdevelopers.com/2014/06/angularjs-best-practices-001-constants/,如果你這樣做,雖然單頁的應用程序,這是唯一真正的

你可以用速度來渲染HTML/JS。但是你應該非常關心它,因爲速度也有他自己的模板和角度,混合兩種模板在維護和分離問題上有些風險,我建議你選擇一個你最充分使用的模板並使用它另一種只有當你真的需要,而不是將它們用於相同的事情時