2016-03-21 1 views
0
10 var x = 5; 
11 x = 10; 

Est-ce que l'emplacement de mémoire de la variable x changement de la ligne 11 de la ligne 10 ou ne le moteur JavaScript que l'espace remplace la mémoire allouée à l'origine x dans la ligne 10 et placez la valeur 10 là? Est-ce spécifié ou dépend du moteur?Primitives JavaScript: même emplacement de mémoire, nouvel emplacement de mémoire ou dépendant du moteur?

+3

Sinon, c'est une question amusante, mais pas à propos d'un problème spécifique, ce qui est attendu à Stack Overflow. –

+0

Tout sur StackOverflow doit-il affecter directement son code pour être considéré comme légitime? Vraiment? Je ne peux pas juste poser une question qui augmente la profondeur de ma connaissance de ce qui se passe derrière la scène? – user1902183

+1

Essayez http://programmers.stackexchange.com/ –

Répondre

1

Selon Javascript documentation, l'affectation de valeurs signifie la lecture et l'écriture dans la mémoire déjà allouée.

Lorsque vous affectez une variable, la mémoire est allouée. Lorsque vous modifiez sa valeur, la lecture et l'écriture sont effectuées sur le même emplacement de mémoire. Pouvez-vous expliquer comment cela va affecter votre code?

+3

Cela peut être vrai de SpiderMonkey de Mozilla, mais cela ne signifie pas que ce n'est pas dépendant du moteur. (Je ne peux pas l'imaginer, mais ...) –

+0

@TJCrowder: Je pourrais certainement imaginer des optimisations dépendantes du moteur qui changent tout ce que nous pensions savoir sur les variables :-) Il pourrait facilement y avoir deux registres de processeurs remplis de différents valeurs, ou aucun '5' étant créé du tout (mais un' 10' tout de suite). – Bergi