哪裏可以找到V8和ECMAScript之間所有區別的列表?例如,V8支持const
,它不是ECMAScript標準的一部分。V8和ECMAScript的區別
回答
編輯:直接回答:Track status of ES5 implementations in progress指示V8 googlecode issues tagged es5 或https://github.com/joyent/node/wiki/ECMA-5-Mozilla-Features-Implemented-in-V8
V8實現了所有ES5目前除了邊緣的情況下屈指可數,且僅在爲了符合廣大如何等目前的瀏覽器處理給定的情況。
因爲它不會獨立生存,你將要處理的幾乎所有的差異都將放在主機環境實現中。對於大多數用途,這是Web瀏覽器提供的各種API。作爲非瀏覽器示例,Node.js爲文件系統和網絡交互提供了自定義API。就核心語言而言,這只是沒有太大的迴旋餘地。減去DOM,JavaScript是一種非常簡單的語言(它爲什麼如此棒),並且具有真實特定的規範文檔。
ES5是ES3的迭代版本,如果不使用'嚴格使用',幾乎100%向後兼容。在經歷了將近十年的停滯並且無法在主要的JavaScript引擎實現者之間達成共識之後,ES5誕生並主要限於裁剪並解決語言中最糟糕的問題。主流使用ES5的範圍是數組extras,Object extras(主要是Object.create),Function.bind和嚴格模式(關於剝離功能完全是,完全是),以及一些像JSON和base64構建的本地幫助器。
大多數這種240 page specification的花費在費力地確定有關行爲的每一個細節,在JavaScript的已經存在了近15年,以及其將被棄用,並最終移除(with
的功能列表中,eval
各種用途等)。
和諧(ES6)是我們將要看到的第一個真正的大變化。 ES5完成了在同一頁面上獲取引擎實現以及解除JS中大部分有問題的部分的目標。期待ES6,現在是時候解決一些基本的語言問題,需要修改語法修改。 ES6計劃於2013年下半年完成,但大型塊已經在JS引擎中實施,以測試它們並瞭解它們在實際使用中的工作方式。網絡是一件活生生的事情,實施新標準並不是創建新規範,然後像世界上其他行業一樣在世界上釋放它。想法是浮動的,並且必須在實現者層面(編寫V8,Spidermonkey,JSC,Chakra等的人)以及實際用戶級別(在這種情況下用戶是Web開發人員編寫代碼以在這些引擎中運行) 。象牙塔聽寫只是導致缺乏使用。
具體在const
的情況下:目前尚未完全定義完全。這是一個在V8和Spidermonkey中具有類似功能但不完全相同的關鍵字,並且對於ES6具有類似但不完全相同的含義。如果您希望目標受衆的引擎能夠支持它,那麼您可以安全地使用它,但實施它並不是技術上的任何官方規範的一部分。 migrating let' and
const'
除此之外還有一個JS腳本運行的給定引擎公開的「主機對象」.JAVA首先作爲實現存在,第二個作爲規範存在,所以直到最近它對於非專家知道潛水線在哪裏。當它在瀏覽器中運行時(通常情況下),Document Object Model作爲主機對象公開以供自動使用。DOM的功能在很大程度上用IDL來描述,並且在W3C的範圍內。衆多的規範實現包含6個頂級部分,幾乎50個獨立的工作組和大約1000個獨立的規範。這些接口暴露於JavaScript,但完全不受任何JavaScript規範的要求的影響。 DOM涵蓋了所描述的功能的巨大空間以及其不斷變化的實現。
- 1. V8和ES8有何區別
- 2. v8 :: Isolate和v8 :: Context的區別究竟是什麼?
- 3. PowerBuilder v8與PowerBuilder v12之間的區別
- 4. 明確ECMAScript/JavaScript中「LexicalEnvironment」和「VariableEnvironment」之間的區別
- 5. ECMAScript 5中屬性描述符和屬性賦值的區別?
- 6. Firefox的Javascript引擎和Chrome的V8有什麼區別?
- 7. ECMAScript中訪問器屬性和數據屬性之間的區別?
- 8. ECMAScript的2015年時空死區
- 9. +和CONCAT的區別?
- 10. 用於ECMAScript-262的IDE與用於node.js/V8的IDE執行/調試
- 11. 區別「」和
- 12. 區別://和http:\\
- 13. Hello World和V8
- 14. 之間的〜/和的區別../
- 15. JQuery.Post()的目的和區別
- 16. 區別:android:background和android:src?
- 17. 區別使用[和[
- 18. 區別Await.ready和Await.result
- 19. ASCII和Unicode區別
- 20. 區別:Riak.mapValuesJson()和JSON.parse()
- 21. 區別:ID/*和@ + ID/*
- 22. LXML xpath.//和//區別
- 23. 區別GetDesktopWindow()和HWND_DESKTOP
- 24. 區別webcontent和webapp
- 25. 區別! !和= JavaScript中
- 26. 類區域和堆之間的區別
- 27. Cassandra中節點和分區的區別
- 28. Vuforia文本識別和OCR的區別?
- 29. SPFile和PublishingPage類別之間的區別
- 30. 子類和類別之間的區別?
剛剛瞭解到,通過改進我的回答,我喪失了爲其獲得功勞的能力。社區wiki是愚蠢的。 – 2011-11-27 21:04:52
顯然我是錯誤的和愚蠢的http://meta.stackexchange.com/questions/113799/i-edit-my-answers-a-lot-how-can-i-prevent-myself-from-forfeiting-credit-由於 - – 2011-11-28 04:22:33
問題是我傾向於回答更高層次的問題。就像這個關於v8引擎的相對普通的問題被一個膨脹的回答,但深入討論實現。這應該是某個地方。但我不知道在哪裏。 – 2011-11-28 05:26:31