在Javascript中连接字符串?

时间:2013-10-06 14:29:28

标签: javascript

使用下面的代码,特别是查看第2段...如果var str =“sting equality test ...”+ strA,为什么第2行,第3行等不输出相同的输出加上他们自己的行?

编辑抱歉没有正确解释 - 我实际上只是想知道为什么这个代码(一旦我清理了它)不会产生重复的第一行(第2段),再加上我在第2和第3行所说的我不需要它,它只是一个练习,我只是不明白。好像它应该

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:真实 浮动平等测试:真实 整数不等式检验:假
大于测试:真实 不到测试:假
小于/等于测试:真实

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

 String equality test: false
String equality test: false String equality test 2: true
String equality test: false Float equality test: true
String equality test: false Integer inequality test: false
String equality test: false Greater than test: true
String equality test: false Less than test: false
String equality test: false Less than/Equal to test: true

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

  

我只是不明白以下内容是如何输出的,因为我确实要将每一行添加到var str,即"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/