這是給自己看的翻譯是為了更好的理解JS執(zhí)行環(huán)境到底是什么東東讼庇,我想會(huì)因?yàn)闃?biāo)題原因會(huì)給偶然不小心谷歌或者百度到的人看到姻采。如果覺得沒趣崇堵,很low型诚,請(qǐng)趕緊點(diǎn)擊關(guān)閉離開,不然這會(huì)浪費(fèi)您的時(shí)間鸳劳。
翻譯這里開始(下面鏈接本文翻譯的原文)
執(zhí)行環(huán)境(來自ECMAScript規(guī)范)
??一個(gè)執(zhí)行環(huán)境是一種規(guī)范設(shè)備被用來追蹤代碼的執(zhí)行時(shí)間評(píng)估通過一種ECMAScript來實(shí)現(xiàn)狰贯。此刻的任何一個(gè)點(diǎn),事實(shí)上這里至多有一個(gè)正在執(zhí)行代碼的執(zhí)行環(huán)境赏廓。這大家熟知的正在運(yùn)行的執(zhí)行環(huán)境涵紊。
??執(zhí)行環(huán)境棧是用來跟蹤執(zhí)行環(huán)境的。正在執(zhí)行的執(zhí)行環(huán)境會(huì)一直在這個(gè)棧的頂部幔摸。一個(gè)新的執(zhí)行環(huán)境被創(chuàng)建出來無論什么時(shí)候控制權(quán)由當(dāng)前正在執(zhí)行的執(zhí)行環(huán)境有關(guān)的可執(zhí)行代碼來調(diào)動(dòng)而不是由跟執(zhí)行環(huán)境無關(guān)的可執(zhí)行代碼來調(diào)度摸柄。以一種新的方式創(chuàng)建的執(zhí)行環(huán)境會(huì)被壓入到棧頂然后成為正在執(zhí)行的執(zhí)行環(huán)境。
??一個(gè)執(zhí)行環(huán)境包含了執(zhí)行規(guī)定的狀態(tài)既忆,它是必須用來追蹤相關(guān)代碼的執(zhí)行進(jìn)程 驱负。每一個(gè)執(zhí)行環(huán)境至少都有這些狀態(tài)的成分在表22中。
組成部分 | 目的 |
---|---|
代碼執(zhí)行狀態(tài) | 任何狀態(tài)都需要完成患雇,推遲跃脊,繼續(xù)和執(zhí)行環(huán)境有聯(lián)系的代碼的執(zhí)行 |
函數(shù) | 如果一個(gè)執(zhí)行環(huán)境正在執(zhí)行一個(gè)函數(shù)對(duì)象的代碼,那么這個(gè)組成的值是這個(gè)函數(shù)對(duì)象苛吱。如果這個(gè)執(zhí)行環(huán)境正在執(zhí)行腳本或者模塊的代碼酪术,那么這個(gè)值是null. |
范圍 | 這個(gè)范圍記錄與訪問ECMAScript源代碼有關(guān)。 |
腳本模塊 | 腳本記錄和模塊記錄來自源代碼的關(guān)系又谋。如果這里沒有原腳本和原模塊這種情況對(duì)于 |
a new execution contexts is created whenever control is transferred from ececutable code
代碼的求值通過運(yùn)行執(zhí)行環(huán)境也許會(huì)被推遲在規(guī)定的不同點(diǎn)拼缝。一旦運(yùn)行執(zhí)行環(huán)境暫停了一種不同的執(zhí)行環(huán)境也許會(huì)成為當(dāng)前的執(zhí)行環(huán)境并且開始著手評(píng)估它的代碼娱局。在后來的一些時(shí)間一個(gè)被暫停的執(zhí)行環(huán)境也許再次成為正在運(yùn)行的執(zhí)行環(huán)境并且繼續(xù)回評(píng)估它的代碼在被先前暫停的點(diǎn)上。在執(zhí)行環(huán)境中正在運(yùn)行的執(zhí)行環(huán)境狀態(tài)的轉(zhuǎn)換經(jīng)常會(huì)表現(xiàn)像棧中出后進(jìn)先出的特性咧七。但是一些ECMAScript特征要求不需要LIFO執(zhí)行環(huán)境的轉(zhuǎn)換
??正在執(zhí)行的執(zhí)行環(huán)境Realm成分的值也被叫做當(dāng)前Realm記錄衰齐。正在執(zhí)行的執(zhí)行環(huán)境的函數(shù)成分的值也被叫做活躍函數(shù)對(duì)象。
??對(duì)于ECMAScript 代碼執(zhí)行環(huán)境還有另外的狀態(tài)成分在列表23中
組成成分 | 目的 |
---|---|
詞法環(huán)境 | 查明詞法的環(huán)境可以用來解決通過代碼編寫的標(biāo)識(shí)符引用在這個(gè)執(zhí)行環(huán)境里 |
變量環(huán)境 | 查明詞法環(huán)境的環(huán)境記錄保存由變量聲明創(chuàng)建的綁定物在這個(gè)執(zhí)行環(huán)境里 |
遇到有點(diǎn)難翻譯的語句怎么辦只能先把妨礙你腦子翻譯的詞先踢掉留下主謂賓
identifies the Lexical Environment used to resolve identifier references made by code within
this execution context.
identifier references made by code within this execution context.
(沒有保存又要重新翻譯了)
??一個(gè)執(zhí)行環(huán)境的詞法環(huán)境和變量環(huán)境的成分一直是詞法環(huán)境继阻。當(dāng)一個(gè)執(zhí)行環(huán)境創(chuàng)建了它的詞法環(huán)境和變量環(huán)境成分最初由一樣的值
??代表這生成器對(duì)象的評(píng)估的執(zhí)行環(huán)境有另外的一種狀態(tài)的成分在列表24
組成 | 目的 |
---|---|
生成器 | 在這個(gè)執(zhí)行環(huán)境的生成器對(duì)象正在評(píng)估 |
在很多環(huán)境中僅有正在運(yùn)行的執(zhí)行環(huán)境(執(zhí)行環(huán)境棧中最頂端)可以通過算法來操作在這個(gè)規(guī)范內(nèi)耻涛。因此當(dāng)這些術(shù)語‘詞法環(huán)境’和‘變量環(huán)境’無條件的被使用時(shí),因?yàn)樗鼈兒驼趫?zhí)行的執(zhí)行環(huán)境的成分有關(guān)瘟檩。
??一種執(zhí)行環(huán)境是一種存粹的規(guī)范機(jī)制并且不需要和ECMAScript實(shí)現(xiàn)的特定產(chǎn)物想符合抹缕。ECMAScript代碼不可能直接訪問或者觀察執(zhí)行環(huán)境的。
我這么翻譯了接近了三個(gè)小時(shí)我收獲了什么墨辛,這篇有很多不懂術(shù)語卓研,查了也許還不能很好的翻譯的出來,特別是遇到了很長(zhǎng)很長(zhǎng)的句子睹簇,更不知道該怎么翻譯好了奏赘。我總得收獲什么吧,就這么翻譯完了太惠。你知道了什么是執(zhí)行環(huán)境了嗎磨淌,你只是感覺上好像知道了多了一點(diǎn)了。
你問問自己把凿渊,你知道什么是執(zhí)行環(huán)境了嗎梁只?
它就是一種環(huán)境了,可以有變量和函數(shù)的環(huán)境埃脏。它里面還有很多成分在里面搪锣。
學(xué)習(xí)到了方法論沒有,就是下次遇到不懂的看心理學(xué)的英文時(shí)還是踏踏實(shí)實(shí)的看剂癌。不懂的記錄下來淤翔。難翻譯的沒辦法先把主謂語拿出來再看看。話是這么說還是要踐行才有用佩谷。
現(xiàn)在重新再回頭看一下原文旁壮。感覺自己翻譯都看不下去。
翻譯英文一定要耐心谐檀,不能跳抡谐,因?yàn)樘四阋膊欢侠蠈?shí)實(shí)一字一詞看
難的句子就變簡(jiǎn)單來翻譯咯桐猬。