Javascript变量等于变量true

时间:2013-11-02 20:38:12

标签: javascript variables equals

好的,我无法一字一句地描述它,所以我将使用一个例子:

function f1() {
  document.write(vavariable)
};

function f2(){
  if(variablefot)
    document.body.style.color='red';
};

variablefot = false;
variablefotok = variablefot = true;
variable1 = 'text1' +variablefotok;

variable2 = 'text2';

vavariable = variable1

现在我使用<script>f1();f2();</script>和vavariable = variable1 我应该得到红色文字1 但我得到红色text1 + text'true'

当我使用vavariable2时,我想获得没有体色红色的text2 但我仍然得到RED text2

我试图用功能来做,但它也不起作用。

请帮助我让它工作。我已经失去了几个小时已经尝试过。谢谢!

3 个答案:

答案 0 :(得分:1)

Variablefotok等于true,所以这就是为什么写的是真的。

要更改正文颜色,只需使用f2功能,但将颜色更改回默认值,黑色。基本上,您可以将文本写入文档并根据变量每次更改颜色,或者只需将HTML代码写入文档,如<span style="color:red">text</span><span style="color:black">text</span>。您也可以使用类而不是内联CSS声明。这适用于那种情况。

function write(){
    document.write(text);
    document.body.style.color = color;
}

variable1 = 'text1';
variable2 = 'text2';

使用该代码,您只需执行以下功能即可。如果您将所有文本存储在变量中,您也可以根据需要使用它。

write(variable1, 'red');
write(variable2, 'black');
write(variable3, 'green');
write(variable4, 'blue');
write(variable5, 'brown');
write(variable6, 'yellow');

答案 1 :(得分:0)

嗯,首先:

variablefotok = variablefot=true;

首先将true指定给variablefot,然后指定给variablefotok。因此两者都是真的。

variable1 = 'text1' +variablefotok;

由于variablefotok为true,因此variable1现为'text1true'。因此变量最终将为'text1true'

function f2(){
    if(variablefot) 
        document.body.style.color='red';
};

如果variablefot = true,将(当被调用时)将body的颜色更改为红色。由于这个是真的,无论变量的值如何,它总是会将身体的颜色变为红色。

答案 2 :(得分:0)

以下是您拥有的内容,或多或少:http://jsfiddle.net/ySqGg/

  

我应该得到红色文字1但是我得到红色文字1 +文字'真'

这是因为您正在向字符串“添加”true

variablefotok = variablefot=true;
// variablefotok and variablefofot are now both set to true

variable1 = 'text1' +variablefotok;
// same as: variable1 = 'text1' + true;
// `true` is converted into a string so it can be combined with a string
// variable1 is now `text1true`

那为什么会这样呢?好吧,让我们先看一行:

variablefot = false;
variablefotok = variablefot = true;

这可以澄清如下:

variablefot = false;
variablefotok = (variablefot = true);

首先,您将variablefot设置为false。然后在下一行中将其设置为true。赋值语句返回指定的值,因此您也将variablefotok设置为true。

之后f2运行,variablefot现在为真,你变红了。

你的意思是进行比较吗?

variablefotok = (variablefot == true);

通过此更改,文本变为红色,因为variablefot仍为falsehttp://jsfiddle.net/ySqGg/1/

但你很少需要与true进行比较。您可以简单地使用变量,因为它是truefalse

variablefotok = variablefot;

哪个也不会变成红色。请参阅:http://jsfiddle.net/ySqGg/2/


这很容易回答,因为您设置了很多变量,但只有使用一个用于任何usefult(variablefot中的f2)。如果我是你,我会考虑你有哪些变量,并确保你真的需要每个变量,然后删除其他变量。