如果是這樣,這種聲明的語法是什麼?全局常量是否可以在JavaScript中聲明?
回答
JavaScript並沒有真正有一個命名常量的概念,或對象的不變屬性。 (請注意,我不是在談論這裏ES5)
您可以在全球範圍內用一個簡單的var
聲明中聲明全局變量,就像在外面通過一個網頁包含的腳本的任何函數:
<script>
var EXACTLY_ONE = 1;
然後你的代碼當然可以使用這個常量,但它並不是真正的「常量」,因爲值可以被改變(屬性被更新,換句話說)。
更新 - 在ES6和諧最現代的瀏覽器和標準提供const關鍵字:https://developer.mozilla.org/EN-US /文檔/網絡/的JavaScript /參考/語句/常量 – netpoetica 2013-09-26 02:48:00
務必閱讀文檔!常量被限制範圍,所以這樣的:如果'(DEBUG){const的HOST = 「的locahost」;}其他{常量HOST = 「coolhost」;}'不會暴露'HOST'全局。 – 2017-05-18 10:10:15
一切是全球性的,除非與var
關鍵字聲明。
沒有常量要麼。您可以簡單地聲明它們而不使用var
關鍵字。
如果你想確保全球範圍內,你可以把它扔進了window
對象:
window.GLOBAL_CONSTANT = "value";
您可以從任何範圍內做到這一點。然後可以在函數或閉包中聲明常量,但我不會建議這樣做。
爲「尖尖」這麼仔細注意到,ECMAScript中有沒有這樣的功能。然而,JavaScript does:
const a = 7;
document.writeln("a is " + a + ".");
當然,如果你正在寫的代碼放在網頁上的Web瀏覽器上運行,這可能幫不了你了。 :-)
爲什麼地球上這是低調?這是真的,如果你只在Mozilla專用環境中工作,那麼這些信息並不是很有名並且很有用。從我+1。 – 2010-11-14 00:34:28
@Tim,被人不知道...,+1的ECMAScript和JavaScript(TM)之間的差異也從我... BTW有一點要記住下投票,就是TC39委員會有批准了一套[對實現者的建議](http://j.mp/agMtti),其中包括對非標準聲明(對const code)的嚴格模式代碼的限制。火狐4在目前沒有關於在嚴格的模式不規範聲明的限制,但WebKit的JavaScriptCore的有他們-really好事IMO-,你不能用'const'或有''裏面Blocks' FunctionDeclarations' ...只是要記住.. – CMS 2010-11-14 02:40:12
@CMS:有趣的是,我沒有看到這一點。謝謝。 – 2010-11-14 11:29:23
如果你想確保值不能改變使用功能。
因此,而不是:
var Const_X=12
使用:
function Const_X() {
return 12;
}
舊的答案,但我很確定你可以重寫函數。 – Midnightas 2016-08-25 14:08:27
如果你只關心支持新的瀏覽器(或正在使用transpiler如通天支持舊的瀏覽器),你可以做以下內容:
- 創建的設置。JS跟你想要的任何常量文件並將其導出:
export const FRUIT = "kiwi"; export const VEGETABLE = "carrot";
- 在要使用它們,那麼你可以將它們導入如下文件:
- 的N到使用常量做這樣的事情:
import * as Settings from './settings.js'
console.log("The unchangeable fruit is " + Settings.FRUIT);
這是一個比試圖執行一個全局常量,尤其是當你要使用多個JavaScript文件,更清潔的方法。常量
- 1. 是否有可能將Ext.Component聲明爲全局變量?
- 2. 是否可以聲明String [] []類型的全局數組?
- 3. 是否可以聲明性地配置非全局偵聽器?
- 4. 我們可以在QML文件中聲明全局變量嗎?
- 5. 我在哪裏可以在網頁中聲明全局JavaScript變量?
- 6. JavaScript;我如何聲明變量全局?
- 7. 是否有全局常量?
- 8. 私人與fileprivate在Swift3中聲明全局變量/常量?
- 9. 是否可以強制JavaScript在使用前聲明變量?
- 10. 是否可以聲明一個全局變量,以便它可以從JSP中的每個類中使用?
- 11. 是否可以強制聲明局部變量?
- 12. 鎖是否需要聲明爲全局?
- 13. 在Arduino中聲明全局變量
- 14. 在perl中聲明全局變量
- 15. 在ActionScript中聲明全局變量?
- 16. 在Matlab中聲明全局變量
- 17. 在coffescript中聲明全局變量
- 18. 在yacc中聲明全局變量
- 19. 全局變量在android中的聲明
- 20. 在Java中聲明全局變量
- 21. 在全局變量中聲明查詢
- 22. 在Python中聲明全局變量類
- 23. 在Swift中聲明全局變量
- 24. 在vb中聲明全局變量
- 25. 聲明全局變量
- 26. 全局變量聲明
- 27. 是否可以在Puppet中「聲明」?
- 28. 未用var聲明的JavaScript變量是否變爲全局變量?
- 29. 在Python中什麼是全局聲明?
- 30. 好主意在單個.js文件中聲明全局常量?
如果全球您指的是可以改變的網域的網頁,那麼你需要的東西后,被稱爲是餅乾變.. – crodjer 2010-11-13 20:34:31
@Dcrodger:不,功能之間公正的全球。此外,這是一個常數,而不是一個變量 - 因此,cookie會過度殺傷。 – Giffyguy 2010-11-13 20:35:54
參見:http://stackoverflow.com/questions/130396/are-there-constants-in-javascript – Ken 2010-11-13 21:19:42