在javascript中添加字符串时出现问题

时间:2014-12-21 21:29:02

标签: javascript string function

我没有从javascript中收到错误,但是当字符串加在一起时我得到的结果是意外的。这是我的代码和我收到的内容

var result = "x"
addstr("1")

var addstr = function(str){
    var result = result + str
    alert(result)
}

我相信我应该得到x1的结果。然后下次我执行函数x11。然后是x111等......但我得到的结果是“未定义1”和“#39;”。我已经再次运行它并且我得到完全相同的错误,' undefined1'。我不知道发生了什么事,我确定这个问题很简单,虽然我已经找了一段时间,并且没有看到有人遇到这个问题'另外,请考虑我对javascript的新手。谢谢你的时间。

我可以使用一些示例代码来解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

在函数结果中使用var使其成为局部变量。所以你在函数中有不同的(本地)版本的结果,而不是你想从外面得到的原始结果。

在功能中删除var关键字。将其更改为

var result = "x"
addstr("1")

var addstr = function(str){
    result = result + str
    alert(result)
}

答案 1 :(得分:0)

var声明会创建一个局部变量。函数内的result会影响函数外部的result,并且因为您在初始化之前使用它,所以它的值为undefined

答案 2 :(得分:0)

addstr(" 1")是一个不是整数的字符串 结果之后你也忘记了分号 所以

 result="x"
becomes 
result ="x";

也从你的函数中删除var

var addstr = function(str){
     result = result + str
    alert(result)
}