JavaScript:Error-";应为赋值或函数调用,但看到的却是表达式“quot;?
我正在使用以确保我的JavaScript是“严格的”,并且我得到以下错误: 应为赋值或函数调用,而不是看到表达式 关于以下代码:JavaScript:Error-";应为赋值或函数调用,但看到的却是表达式“quot;?,javascript,jquery,jslint,Javascript,Jquery,Jslint,我正在使用以确保我的JavaScript是“严格的”,并且我得到以下错误: 应为赋值或函数调用,而不是看到表达式 关于以下代码: (my_var > 0 ) ? $("#abc").html(my_array.join('')) : $("#abc").html('<h2>Hello ' + persons_name); (我的变量>0)$(“#abc”).html(my#u array.join(“”)):$(“#abc”).html('Hello'+人名); 知道我为什
(my_var > 0 ) ? $("#abc").html(my_array.join('')) : $("#abc").html('<h2>Hello ' + persons_name);
(我的变量>0)$(“#abc”).html(my#u array.join(“”)):$(“#abc”).html('Hello'+人名);
知道我为什么会犯这样的错误吗?此外,我正在使用上述代码中所示的jQuery,以防出现差异。我认为这是因为三元运算符对表达式求值,并返回预期要赋值的值。例如:
var test = (my_var > 0) ? true : false;
但是,您使用它就像使用常规的if/then/else语句一样。虽然三元运算符确实执行if/then/else,但它传统上用于赋值
编辑:作为附录:这句话对你有意义吗
var foo = 1;
(my_var > 0) ? true : false;
console.log('hello world');
您正在一行中使用表达式(精确地说,表达式使用三元运算符):您的行由表达式唯一组成
在许多语言中,这被认为是糟糕的编程实践,可以使用
if
语句重写,以使这一行更加清晰。我的猜测是,JSLint不高兴,因为您使用的是三元运算符,并且您没有对该值做任何操作。将其重构为等效的:
if (my_var > 0 ) {
$("#abc").html(my_array.join(''));
} else {
$("#abc").html('<h2>Hello ' + persons_name);
}
if(我的变量>0){
$(“#abc”).html(my_array.join(“”));
}否则{
$(“#abc”).html('Hello'+人名);
}
将消除错误。如果出于某种原因,您确实喜欢使用三元运算符,那么使用它的“正确”方法是:
$("#abc").html((my_var > 0) ? my_array.join('') : '<h2>Hello ' + persons_name);
$(“#abc”).html((my#var>0)?my_array.join(“”):“Hello”+人名);
出于某种原因,只是问了同一个问题,没有找到这个问题
三元函数返回一个未被使用的值,因此您通过不使用该值(即使函数调用按预期进行)滥用了三元结构。我希望有一个轻松的选项来使用按位和作为布尔类型检查