Ho la seguente funzione in JavaScript e durante l'esecuzione tramite JSLint, mi ha urlato contro, come la chiamo io.Qual è il formato standard per le espressioni di assegnazione?
function getPos(event, element) {
var x = event.clientX,
y = event.clientY,
currentElement = element;
do {
x -= currentElement.offsetLeft - currentElement.scrollLeft;
y -= currentElement.offsetTop - currentElement.scrollTop;
} while ((currentElement = currentElement.offsetParent));
return {
x: x,
y: y
};
}
In particolare sull'espressione dell'assegnazione inline nel ciclo while. Ho immaginato che la doppia parentesi fosse il modo standard per dire: "Mi aspetto che il valore restituito dall'espressione di assegnazione venga digitato in un codice Boolean
per il condizionale". JSLint sembra essere in disaccordo, anche quando abilito le "espressioni di assegnazione". Poi ho provato ad aggiungere uno !!
davanti e JSLint si lamenta che si tratta di "uso confuso". Quindi la mia domanda è, qual è il modo giusto per formattare questo?
MODIFICA: Con "questo", intendevo specificamente l'espressione dell'assegnazione in linea. L'intento della mia domanda era di chiarire quale fosse uno standard accettabile per quella particolare linea, se si voleva davvero usarlo, e anche se sono d'accordo sul fatto che la risposta di courtèye è il modo più corretto per scrivere la funzione, non è la risposta a la domanda che stavo chiedendo.
C'era una versione di Opera qualche tempo fa che richiedeva la doppia parentesi quando si eseguiva l'assegnazione come condizione, altrimenti avrebbe "corretto" l'assegnazione a '=='. – RobG
@RobG Eheh, scommetto che gli sviluppatori adoravano il debug di _that_ one ~ –