Maison interface Web Questions et réponses frontales Quelle est la différence entre nodejs et le navigateur

Quelle est la différence entre nodejs et le navigateur

Nov 12, 2021 pm 01:48 PM
nodejs 浏览器

Différence : 1. Dans l'environnement global, ceci dans le nœud pointe vers global, tandis que dans le navigateur, cela pointe vers window ; 2. DOM et BOM peuvent être utilisés directement ou indirectement dans le navigateur, mais DOM et BOM ne sont pas utilisés dans node; 3 , le navigateur ne peut pas effectuer d'opérations sur les fichiers et d'autres fonctions dans nodejs.

Quelle est la différence entre nodejs et le navigateur

L'environnement d'exploitation de ce tutoriel : système windows7, nodejs version 12.19.0, ordinateur DELL G3.

Tout récemment, un ami m'a posé des questions sur ce problème. Permettez-moi de parler brièvement de la différence entre l'environnement de nœud et le navigateur tel que je le comprends. Experts, veuillez l'ignorer.

1. L'intérêt de ceci dans l'environnement global

Dans node this pointe vers global et dans le navigateur cela pointe vers window C'est pourquoi une racine est définie en trait de soulignement au début

var root = typeof self == 'object' && self.self === self && self ||
            typeof global == 'object' && global.global === global && global ||
            this;
Copier après la connexion

Et dans. le navigateur Il existe de nombreuses API encapsulées sous la fenêtre, telles que l'alerte, le document, l'emplacement, l'historique, etc. et bien d'autres. Nous ne pouvons pas utiliser xxx(); ou window.xxx(); dans l'environnement de nœud. Étant donné que ces API sont une encapsulation au niveau du navigateur, elles ne sont pas disponibles en JavaScript. Bien entendu, node fournit également de nombreuses API spécifiques au nœud.

2. moteur js

Différents fabricants de navigateurs fournissent différents noyaux de navigateur dans les navigateurs, et les navigateurs s'appuient sur ces noyaux pour interpréter et plier les js que nous écrivons. Mais compte tenu des petites différences entre les différents noyaux, nous avons besoin d'une compatibilité correspondante. Heureusement, il existe d'excellentes bibliothèques pour nous aider à résoudre ce problème, comme jquery, underscore, etc.

 Nodejs est basé sur le runtime JavaScript de Chrome, ce qui signifie qu'il encapsule en fait le moteur Google V8 (appliqué au navigateur Google Chrome). Le moteur V8 exécute Javascript très rapidement et offre de très bonnes performances.

NodeJS ne fournit pas d'encapsulation simple, puis ne fournit pas d'appels API. Si tel était le cas, il ne serait pas aussi populaire qu'aujourd'hui. Node a optimisé certains cas d'utilisation spéciaux et fourni des API alternatives pour améliorer le fonctionnement de la V8 dans des environnements sans navigateur. Par exemple, dans un environnement serveur, le traitement des données binaires est souvent essentiel, mais Javascript ne le prend pas suffisamment en charge. Par conséquent, V8.Node ajoute la classe Buffer pour traiter les données binaires de manière pratique et efficace. Par conséquent, Node utilise non seulement simplement le V8, mais l’optimise également pour le rendre plus puissant dans divers environnements.

 Le moteur js a été corrigé et il prend également en charge la compatibilité Shenma.

3. Fonctionnement du DOM

Dans la plupart des cas, js dans le navigateur exploite le DOM directement ou indirectement (certaines bibliothèques et frameworks DOM virtuels). Parce que le code du navigateur fonctionne principalement dans la couche de présentation. Mais le nœud est une technologie côté serveur. Il n’y a pas de page d’accueil, nous n’exploiterons donc pas le DOM en nœud.

Quelle est la différence entre nodejs et le navigateur

4. Lecture et écriture d'E/S

Contrairement aux navigateurs, nous devons lire et écrire des fichiers comme les autres technologies côté serveur fournissent des composants plus pratiques. Et le navigateur (pour assurer la compatibilité) a beaucoup de mal s'il veut ouvrir directement une image locale dans la page (ne me dites pas que ce n'est pas simple, chemin relatif... Essayez-le et vous saurez, ou trouvez une bibliothèque Soit un flux binaire, soit l'adresse réseau est affichée lors du téléchargement. Sinon, pourquoi quelqu'un créerait-il une bibliothèque js ?), et tout cela est fait par nœud à l'aide d'un composant.

5. Chargement du module

JavaScript a une caractéristique, c'est-à-dire que l'API native qui ne fournit pas de références de package exécute toutes les choses à charger en même temps. Ici, cela dépend de vos compétences en matière de fermeture. Toutes les choses utilisées sont ensemble, il n’y a pas de diviser pour mieux régner, et il n’y a pas de logique ou de réutilisation. Si la page ou le site Web est simple, nous pouvons bien sûr utiliser certaines bibliothèques AMD et CMD js (telles que requireJS et seaJS) pour le faire. En fait, de nombreux grands sites Web le font.

  L'API de chargement du module CMD est fournie dans nodeJS Si vous avez utilisé seaJS, vous devriez vous lancer rapidement.

 Node fournit également npm, un outil de gestion de paquets, qui peut gérer plus efficacement et plus facilement nos bibliothèques de boissons

  Bien sûr, ES6 côté navigateur a également cet ajout, je pense que ce sera mieux à l'avenir. . .

Bien sûr, il existe de nombreuses autres différences entre le nœud et les navigateurs, et je les ajouterai à tout moment.

【Apprentissage recommandé : "Tutoriel Nodejs"】

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment afficher correctement le 'Jingnan Mai Round Body' installé localement sur la page Web? Comment afficher correctement le 'Jingnan Mai Round Body' installé localement sur la page Web? Apr 05, 2025 pm 10:33 PM

En utilisant récemment des fichiers de police installés localement dans les pages Web, j'ai téléchargé une police gratuite à partir d'Internet et je l'ai installée avec succès dans mon système. Maintenant...

Comment contrôler le haut et la fin des pages dans les paramètres d'impression du navigateur via JavaScript ou CSS? Comment contrôler le haut et la fin des pages dans les paramètres d'impression du navigateur via JavaScript ou CSS? Apr 05, 2025 pm 10:39 PM

Comment utiliser JavaScript ou CSS pour contrôler le haut et la fin de la page dans les paramètres d'impression du navigateur. Dans les paramètres d'impression du navigateur, il existe une option pour contrôler si l'écran est ...

Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Comment résoudre ce problème? Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Comment résoudre ce problème? Apr 05, 2025 pm 10:18 PM

Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Pendant la programmation, les marges négatives dans CSS (négatif ...

Comment utiliser des fichiers de police installés localement sur les pages Web? Comment utiliser des fichiers de police installés localement sur les pages Web? Apr 05, 2025 pm 10:57 PM

Comment utiliser des fichiers de police installés localement sur les pages Web avez-vous rencontré cette situation dans le développement de pages Web: vous avez installé une police sur votre ordinateur ...

Le texte sous la disposition Flex est omis mais le conteneur est ouvert? Comment le résoudre? Le texte sous la disposition Flex est omis mais le conteneur est ouvert? Comment le résoudre? Apr 05, 2025 pm 11:00 PM

Le problème de l'ouverture des conteneurs en raison d'une omission excessive du texte sous disposition flexible et de solutions est utilisé ...

Comment réaliser l'effet de défilement horizontal des options horizontales par des éléments tournants dans le CSS? Comment réaliser l'effet de défilement horizontal des options horizontales par des éléments tournants dans le CSS? Apr 05, 2025 pm 10:51 PM

Comment réaliser l'effet de défilement horizontal des options horizontales dans le CSS? Dans la conception Web moderne, comment réaliser un effet de type onglet horizontal et soutenir la souris ...

Comment résoudre le problème de la hauteur en ajustant l'unité REM dans la conception adaptative? Comment résoudre le problème de la hauteur en ajustant l'unité REM dans la conception adaptative? Apr 05, 2025 pm 11:03 PM

Comment résoudre le problème de réglage de la hauteur dans la conception adaptative? Dans la conception adaptative, l'ajustement de la hauteur est souvent un problème difficile. Surtout lorsqu'il s'agit de similaires ...

See all articles