javascript - Introduction aux variables, guillemets et problèmes d'utilisation des signes
PHPz
PHPz 2017-05-18 10:59:41
0
4
615

Il y a quelque chose que je ne comprends pas très bien. Cette fois, j'ai vu un morceau de code qui explique très bien le problème :

function moveElement (elementID, final_x, final_y, interval) {
    var elem = document.getElementById(elementID);
    var xpos = parseInt(elem.style.left);
    var ypos = parseInt(elem.style.top);
    ......
    var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";
    movement = setTimeout(repeat, interval)
}

Je n'ai qu'une question :

var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";

Dans ce paragraphe, elementID,final_x,final_y,intervalles quatre paramètres sont transmis. À l'exception du premier qui est une chaîne, les trois derniers sont tous des nombres.

La première chose que je ne comprends pas, c'est pourquoi ces paramètres doivent être placés entre guillemets. La deuxième chose que je ne comprends pas, c'est ce que fait le signe plus ici. Une autre question est pourquoi cette chaîne comme elementID est-elle entourée de guillemets doubles ? Dans quelles circonstances est-ce nécessaire ?

En général, je pense que le signe plus convient à l'épissage de chaînes, mais ce n'est évidemment pas le cas ici. Une paire de guillemets est un espace indépendant. Quelle est la signification du signe plus qui y est enveloppé ?

PHPz
PHPz

学习是最好的投资!

répondre à tous(4)
洪涛

1. Les guillemets sont entourés de virgules
2.123456+"somestring"→"123456somestring"
3.elementId est un paramètre de type String, donc ajoutez des guillemets

滿天的星座

La variable est enfin convertie en chaîne ! Les nombres + guillemets changent de caractères Si le paramètre dont vous avez besoin est une chaîne au lieu d'un nombre

.
漂亮男人

La chaîne ici équivaut à l'utilisation de eval dans setTimeout, qui fait référence à la chaîne de code que vous souhaitez exécuter après un délai de quelques millisecondes

世界只因有你

Tout d'abord, le signe plus ici est en effet utilisé pour l'épissage des cordes

var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";
Le résultat de

est

var repeat = "moveElement(elementID, final_x, final_y, interval)"

Passez simplement la variable de chaîne nommée répétition en tant que paramètre à setTimeout, c'est-à-dire qu'après un intervalle de quelques millisecondes, la répétition sera exécutée

var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";
movement = setTimeout(repeat, interval)

C'est en fait fondamentalement la même chose que

movement = setTimeout(function () {
    moveElement(elementID, final_x, final_y, interval)
}, interval)

Cela devrait être plus facile à comprendre, non ?

Cependant, il existe encore des différences entre ces deux méthodes. Généralement, la méthode mentionnée par l'interrogateur n'est pas recommandée. Pour plus de détails, voir window.setTimeout, Exécuter une chaîne en tant que fonction dans javascript setTimeout ?

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal