Javascript或jQuery:在if语句中赋值

Javascript或jQuery:在if语句中赋值,javascript,jquery,html,function,if-statement,Javascript,Jquery,Html,Function,If Statement,我很好奇是否可以在if语句中赋值,比如: if (a=jQuery("#user > .mask.fix > .a1").css('display')!='none'){ b = a+'hello'; //b=jQuery("#user > .mask.fix > .a1").css('display')+'hello'; //the same thing but slower because of access through DOM again, rig

我很好奇是否可以在if语句中赋值,比如:

if (a=jQuery("#user > .mask.fix > .a1").css('display')!='none'){
   b = a+'hello';
   //b=jQuery("#user > .mask.fix > .a1").css('display')+'hello'; //the same thing but  slower because of access through DOM again, right?
}
我已经在chrome控制台上测试过这种结构,看起来它可以工作。我只想有人确认它在javascript甚至jQuery中是有效的

多谢各位

我已经在chrome控制台上测试过这种结构,看起来它可以工作

不,你写的第一个块并不像你想象的那样。它将比较结果指定给a,而不是显示值。因此,a将以正确或错误结束,而不是没有或类似。要分配然后测试,您需要在a=。。。一部分

我只想有人确认它在javascript甚至jQuery中是有效的

jQuery是一个库,而不是一种语言。我们这里只讨论JavaScript

您可以通过以下方式执行此操作:

…但这更易于阅读和调试:

a=jQuery("#user > .mask.fix > .a1").css('display');
if (a!='none'){
   b = a+'hello';
}
我已经在chrome控制台上测试过这种结构,看起来它可以工作

不,你写的第一个块并不像你想象的那样。它将比较结果指定给a,而不是显示值。因此,a将以正确或错误结束,而不是没有或类似。要分配然后测试,您需要在a=。。。一部分

我只想有人确认它在javascript甚至jQuery中是有效的

jQuery是一个库,而不是一种语言。我们这里只讨论JavaScript

您可以通过以下方式执行此操作:

…但这更易于阅读和调试:

a=jQuery("#user > .mask.fix > .a1").css('display');
if (a!='none'){
   b = a+'hello';
}

您可以,但对于其他程序员和任何类似以下的linting工具来说,这都将是一个错误:

应为条件表达式,而应为赋值。 代码:


也只能运行jQuery一次,但要干净一点。

您可以,但对于其他程序员和任何linting工具(如:

应为条件表达式,而应为赋值。 代码:


也只会运行jQuery一次,但要干净一点。

已经问过@Haradzieniec了……绝对没有错。它在C、java、jquery或java脚本中工作。如果所有这些句子中的从句都是相同的,那么@Haradzieniec…绝对没有错。它在C、java、jquery或java脚本中工作。If子句在所有这些+1中都是相同的,而If语句中的赋值是可能的。可能会与预期结果混淆,代码更难阅读。+1完全同意,而if语句中的赋值是可能的。可能会对预期结果产生混淆,代码更难阅读。
var selected = jQuery("#user > .mask.fix > .a1").css('display');

if (selected !== 'none') {
    b = selected + 'hello';
}