4

J'ai beaucoup plus joué avec JavaScript aujourd'hui, et ce cours continue à souligner l'importance de connaître JavaScript de l'intérieur.Comment la fenêtre de la console gère-t-elle l'affectation arithmétique JavaScript en interne? D'où vient la valeur retournée?

J'ai donc ce genre de question étrange, c'est principalement moi qui essaie de comprendre comment fonctionne JavaScript en interne.

Disons que je fais le calcul suivant dans la console:

>> x = 1 
< 1 
>> x = x + 2 
< 3 

Le « 3 » qui est retourné là-bas, où vient-il exactement?

Comme s'il évaluait d'abord 'x + 2', puis renvoyait 3 et définissait la valeur de x en mémoire à 3? Ou évaluerait-il 'x + 2', l'enregistrerait-il dans l'espace mémoire de x, puis retournerait la valeur de x à partir de ce même espace mémoire?

Ou peut-être même simplement modifier la valeur de x dans son espace mémoire sans le déplacer, puis renvoie la valeur de x?

J'apprécierais également n'importe quelle source sur la façon dont je pourrais apprendre plus au sujet du fonctionnement interne de Javascript aussi, pour répondre à plus de questions comme ceci.

Merci!

+0

La valeur imprimée dans la console n'est rien d'autre que la sortie de la dernière opération .. Essayez 'x = x + 2, name = 100;' .. Vous donnera une meilleure idée .. – Rayon

+0

Yup, comment cette sortie est elle-même calculée la mémoire (en rapport avec les variables) est ce qui me préoccupe le plus. Essayant fondamentalement de comprendre ce que la console retourne exactement, juste pour mieux connaître JS. –

+0

Ceci est plus une chose REPL qu'une chose JavaScript je dirais –

Répondre

0

Si vous avez déjà travaillé sur un système basé sur un terminal comme Unix, il serait plus facile de comprendre ce qui se passe. Pensez à la console un type de terminal bash. Si vous tapez une commande dans un terminal de ligne de commande et appuyez sur la touche Entrée, il répondra avec une sortie ou parfois même une erreur.

Un événement similaire se produit dans la console Chrome. Chaque fois que vous ouvrez une console Chrome, elle conserve une session dans laquelle elle stocke vos variables et vos fonctions. Et lorsque vous appelez ou utilisez la même variable ou la même fonction, elle renvoie simplement cette valeur.

BTW lorsque vous tapez quelque chose comme

>> x = 1 

ce qui se passe est en interne la nouvelle propriété que x appelé à créer dans l'objet window global. Donc x = 1 est identique à window.x = 1. C'est ainsi que la console peut mémoriser vos affectations et l'utiliser plus tard lorsque vous l'appelez.

J'espère que j'ai réussi à vous embrouiller, alors je vais m'arrêter ici.

+0

Non, pas de confusion causée! Le cours que je suis en train de faire maintenant explique bien la partie fenêtre, 'this.x' fonctionne aussi :) - Bien que je cherche plus comment les variables sont 'traitées' en mémoire par JS, comme la valeur retournée, où cela vient-il exactement? –

0

Vous pouvez prendre votre exemple plus loin pour voir sa logique comme

>> x = 1 
< 1 
>> y = x = x + 2 
< 3 
>> x == y 
< true 

Il est essentiellement sortie de la ligne. Certaines fonctionnalités que vous avez vues sur votre navigateur sont implémentées sur le moteur Javascript. Voici my favorite talk légèrement en rapport avec le sujet.