javascript jquery jslint

JavaScript: Error: "¿Se esperaba una asignación de función o función y, en su lugar, se vio una expresión"?



jquery jslint (4)

Creo que esto se debe a que el operador ternario evalúa la expresión y devuelve un valor que se espera que se asigne. Por ejemplo:

var test = (my_var > 0) ? true : false;

Sin embargo, lo está utilizando como una declaración regular if / then / else. Mientras que el operador ternario realiza si / then / else, se usa tradicionalmente en asignantes.

EDITAR: Como un addendum: ¿tendría sentido esta declaración para usted?

var foo = 1; (my_var > 0) ? true : false; console.log(''hello world'');

Estoy usando JSLint para garantizar que mi JavaScript sea "estricto" y recibo el siguiente error:

Se esperaba una asignación de función o llamada de función y en su lugar se vio una expresión

En el siguiente código:

(my_var > 0 ) ? $("#abc").html(my_array.join('''')) : $("#abc").html(''<h2>Hello '' + persons_name);

¿Alguna idea de por qué estoy recibiendo un error? Además, estoy usando jQuery como se ve en el código anterior, en caso de que haga una diferencia.


Solo pregunté la misma Q sin encontrar esta por alguna razón ...

El ternario devuelve un valor que no se está utilizando, por lo que está abusando de la estructura ternaria al no usar el valor (aunque las llamadas de función se realizan según lo previsto).


Supongo que JSLint no está contento ya que está utilizando el operador ternario y no está haciendo nada con el valor. Refactorizando esto en el equivalente:

if (my_var > 0 ) { $("#abc").html(my_array.join('''')); } else { $("#abc").html(''<h2>Hello '' + persons_name); }

eliminaría el error. Si por alguna razón usted está realmente apegado al uso del operador ternario, la forma "correcta" de usarlo sería:

$("#abc").html((my_var > 0) ? my_array.join('''') : ''<h2>Hello '' + persons_name);


está utilizando una expresión (una expresión que usa el operador ternario para ser preciso) en una sola línea: su línea se compone únicamente de una expresión.

esto se considera una práctica de programación deficiente en muchos lenguajes, y se podría reescribir usando una instrucción if para que esta línea sea más clara.