0

使用下面的代码,特别查看第二段...如果 var str = "sting equal test..." + strA,为什么第二、第三行等不输出相同的输出加上它们自己的行?

编辑抱歉没有正确解释 - 我实际上只是想知道为什么这段代码(一旦我清理它)不会重复产生第一行(第二段的),加上我在第二和第三行中陈述的任何内容等。我不需要它,这只是一个练习,我只是不明白。好像应该

function init()
{
    var strA = "Javascript" === "JAVASCRIPT" ;
    var strB = "Javascript" === "Javascript" ;
    var flt = 7.5 === 7.5 ;
    var intA = 8 !== 8 ;
    var intB = 24 > 12 ;
    var intC = 24 < 12 ;
    var intD = 24 <= 24 ;

    var str = "String equality test: " + strA ;
    str += "<br>String equality test 2: " + strB ;
    str += "<br>Float equality test: " ; + strC ;
    str += "<br>Integer inequality test: " + intA ;
    str += "<br>Greater than test: " + intB ;
    str += "<br>Less than test: " + intC ;
    str += "<br>Less than/Equal to test: " + intD ;

    document.getElementById( "panel" ).innerHTML = str ;
}
document.addEventListener("DOMContentLoaded" , init , false) ;

所以我得到的输出如下;

字符串相等测试:false
字符串相等测试 2:true
浮点相等测试:true
整数不等测试:false
大于测试:true
小于测试:false
小于/等于测试:true

这显然是正确的,我只是不明白如何不输出如下内容,因为我肯定将每一行添加到 var str,即“String equakity test: false

字符串相等测试:假
字符串相等测试:false 字符串相等测试 2:true
字符串相等测试:false 浮点相等测试:true
字符串相等测试:false 整数不等测试:false
字符串相等测试:false 大于测试:true
字符串相等测试:false 小于测试:false
字符串相等测试:false 小于/等于测试:true
4

2 回答 2

1

;前面的第三行有一个+。删除它应该可以解决问题。strC您尝试在该奇怪之后添加的变量+不存在。

于 2013-10-06T14:32:37.400 回答
0

我只是不明白如何输出以下内容,因为我肯定将每一行添加到 varstr中,即"String equakity test: false"

不,唯一str等于的时间"String equality test: false"是在第一行之后。每行str通过在前一行之后的任何内容上添加一些内容来修改变量。所以在第一行之后:

var str = "String equality test: " + strA ;

...变量str现在等于

"String equality test: false"

然后在第二行之后:

str += "<br>String equality test 2: " + strB ;

...变量str现在等于

"String equality test: false<br>String equality test 2:"

第三行有错误,但假设您删除了多余的分号并修复了变量名:

str += "<br>Float equality test: " ; + strC ;
// should be
str += "<br>Float equality test: " + flt;

...那么变量str将等于

"String equality test: false<br>String equality test 2: true<br>Float equality test: true"

……等等。

如果您console.log(str);在每行之间添加一条语句并在运行代码之前打开浏览器的控制台,您可以清楚地看到这一点。如图所示:http: //jsfiddle.net/mfKy9/

于 2013-10-07T21:56:16.470 回答