Perbezaan: 1. Dalam persekitaran global, ini dalam nod menghala ke global, manakala dalam penyemak imbas ini menghala ke tetingkap 2. DOM dan BOM boleh dimanipulasi secara langsung atau tidak dalam penyemak imbas, tetapi DOM tidak akan dimanipulasi dalam nod dan BOM;
Persekitaran pengendalian tutorial ini: sistem Windows 7, nodejs versi 12.19.0, komputer DELL G3.
Baru-baru ini, seorang rakan bertanya kepada saya tentang isu ini. Izinkan saya bercakap secara ringkas tentang perbezaan antara persekitaran nod dan penyemak imbas yang saya fahami, sila langkaunya.
1 Perkara ini dalam persekitaran global
Dalam nod ini menghala ke global dan dalam pelayar ini menghala ke tetingkap garis bawah A akar ditakrifkan pada permulaan;
var root = typeof self == 'object' && self.self === self && self || typeof global == 'object' && global.global === global && global || this;
Dan banyak API terkandung di bawah tetingkap dalam penyemak imbas, seperti amaran, dokumen, lokasi, sejarah dan banyak lagi. Kami tidak boleh menggunakan xxx(); atau window.xxx(); Oleh kerana API ini adalah enkapsulasi peringkat penyemak imbas, ia tidak tersedia dalam JavaScript. Sudah tentu, nod juga menyediakan banyak API khusus nod.
2. enjin js
Dalam penyemak imbas, pengeluar penyemak imbas yang berbeza menyediakan kernel penyemak imbas yang berbeza dan penyemak imbas bergantung pada kernel ini untuk mentafsir js yang kami tulis. Tetapi memandangkan perbezaan kecil antara kernel yang berbeza, kami memerlukan keserasian yang sepadan Nasib baik, terdapat beberapa perpustakaan yang sangat baik untuk membantu kami menangani masalah ini, seperti jquery, garis bawah, dll.
Nodejs adalah berdasarkan masa jalan JavaScript Chrome, yang bermaksud bahawa ia sebenarnya merangkumi enjin GoogleV8 (digunakan pada penyemak imbas Google Chrome). Enjin V8 melaksanakan Javascript dengan sangat cepat dan mempunyai prestasi yang sangat baik.
NodeJS tidak menyediakan enkapsulasi mudah dan kemudian menyediakan panggilan API Jika itu berlaku, maka ia tidak akan popular seperti sekarang. Node telah mengoptimumkan beberapa kes penggunaan khas dan menyediakan API alternatif untuk menjadikan V8 berjalan lebih baik dalam persekitaran bukan penyemak imbas. Sebagai contoh, dalam persekitaran pelayan, pemprosesan data binari biasanya penting, tetapi Javascript tidak menyokong ini dengan cukup Oleh itu, V8.Node menambah kelas Buffer untuk memproses data binari dengan mudah dan cekap. Oleh itu, Node bukan sahaja menggunakan V8, tetapi juga mengoptimumkannya untuk menjadikannya lebih berkuasa dalam pelbagai persekitaran.
Enjin js telah dibetulkan, dan ia juga menyokong keserasian Shenma.
3. Operasi DOM
Dalam kebanyakan kes, js dalam penyemak imbas mengendalikan DOM secara langsung atau tidak langsung (sesetengah pustaka dan rangka kerja DOM maya). Kerana kod dalam penyemak imbas terutamanya berfungsi dalam lapisan pembentangan. Tetapi nod ialah teknologi sebelah pelayan. Tiada halaman depan, jadi kami tidak akan mengendalikan DOM dalam nod.
4. I/O membaca dan menulis
Tidak seperti pelayar, kita perlu membaca dan menulis fail seperti bahagian pelayan yang lain teknologi, nodejs menyediakan komponen yang lebih mudah. Dan penyemak imbas (untuk memastikan keserasian) mempunyai banyak masalah jika ia mahu terus membuka imej setempat dalam halaman (jangan beritahu saya ia bukan mudah, laluan relatif... Cuba saja dan anda akan tahu, atau cari perpustakaan Sama ada aliran binari, atau alamat rangkaian dipaparkan apabila dimuat naik Jika tidak, mengapa sesiapa membina perpustakaan js?), dan semua ini dilakukan oleh nod menggunakan komponen.
5. Pemuatan modul
JavaScript mempunyai ciri, iaitu API asli yang tidak menyediakan rujukan pakej melaksanakan semua perkara yang akan dimuatkan sekali gus itulah yang anda perlu lihat Terima kasih atas kemahiran penutupan anda. Semua perkara yang digunakan adalah bersama, tidak ada pembahagian dan penaklukan, dan tidak ada logik atau kebolehgunaan semula. Jika halaman atau laman web itu mudah, sudah tentu kita boleh menggunakan beberapa perpustakaan AMD dan CMD js (seperti requireJS dan seaJS) untuk menyelesaikannya, sebenarnya, banyak laman web besar melakukan ini.
API pemuatan modul CMD disediakan dalam nodeJS Jika anda telah menggunakan seaJS, anda harus bermula dengan cepat.
Node juga menyediakan npm, alat pengurusan pakej, yang boleh menguruskan perpustakaan minuman kami dengan lebih berkesan dan mudah
Sudah tentu, ES6 dalam pelayar juga mempunyai tambahan ini, saya percaya ia akan menjadi lebih baik pada masa hadapan. . .
Sudah tentu, terdapat banyak lagi perbezaan antara nod dan penyemak imbas, dan saya akan menambahkannya pada bila-bila masa.
[Pembelajaran yang disyorkan: "tutorial nodejs"]
Atas ialah kandungan terperinci Apakah perbezaan antara nodejs dan penyemak imbas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!