2016-10-10 17 views
8

JavaScript'in bir web tarayıcısı ortamında nasıl yürütüldüğünü daha iyi anlamaya çalışıyorum.Bir Web Tarayıcı Ortamında yürütüldüğünde JavaScript kodlanmış mı?

Node.js açısından, bir Node.JS programında yazılan JavaScript kodunun C++ kodu (V8) ile derlendiğini ve sonuçta makine kodu haline geldiğini anlıyorum. Node.js dosya sistemi ve diğer makine düzeyindeki görevlerle etkileşime girebileceğinden, bana neden sonunda makine kodu haline gelmesi gerektiğini anlamış olur.

Web tarayıcısı ortamı hakkında farklı hissediyorum. Anlayışımdan asıl amaç DOM ile etkileşim kurmaktır. JavaScript'in DOM ile etkileşimde bulunmak için makine koduna derlenmesi gerekiyor mu?

Buna şaşkınım. Node.js ve Chrome, V8'de çalışır. V8, C++ 'da yazılmıştır ve benim bildiğim kadarıyla, bir işlemcinin anlayabileceği makine koduna JavaScript kodu derler.

ECMA-262'yi uygulamak için bir motor motoruna ihtiyacınız var, yani bir motorun tüm amacı (bence?). Ancak, bir web tarayıcısının bir Makine Dil Seviyesine derlenebilmesi için JavaScript'e ihtiyacı var mı, hangi makine işlemlerini gerçekleştiriyor? İşte

Ben araştırdık birkaç makale vardır, ne yazık ki, onlarda benim soruya bir cevap bulamadı:

+0

Sorunuza tam bir cevabım yok, ancak bu tarayıcıya en azından bağlı olacak ve hangi js motoru kullanıyor. Çoğu büyük oyuncunun kendine özgü motorları veya en azından mevcut motorların kendi çatalları vardır. –

+1

Kim bilir? Belki öyle, belki de değil. Modern JavaScript çalışma zamanları gerçekten küçük kod parçalarını yerel ikili formda derleyebilir. Programın anlatacak bir yolu yok. Neden fark eder? – Pointy

+0

Ve evet, Jaromanda X'in dediği gibi, Node'un nasıl çalıştığı konusunda tamamen yanılıyorsunuz. – Pointy

cevap

2

Motor C++ ile yazılmıştır, daha sonra bu kod bir derleyici tarafından makine koduna çevrilir. Kod makine dilinde olduğunda, bilgisayar tarafından çalıştırılabilir. Motor çalışırken, JavaScript'te yazılan kodu okuyabilir, yorumlayabilir ve kodun yapmasını istediği şeyi yürütebilir. Bu durumda, aslında bilgisayarda çalışmakta olan, başka bir kodun yapmasını söylediği şeyi yapan motor kodudur. Düğüm ve bir tarayıcı arasındaki fark, tarayıcının bir JavaScript'in yapmasını istediği hiçbir şeyi yapmamasıdır. Akılda tutulması gereken bir diğer nokta da, bazı tarayıcıların ve düğümlerin JavaScript kodunu kodlara çevirerek gerçek zamanlı olarak daha fazla hız almasıdır. Tarayıcılar, tehlikeli olan makine kodunu yazmamaya da dikkat ederler, ancak teoride bu olabilir.

İlgili konular