我没有从javascript中收到错误,但是当字符串加在一起时我得到的结果是意外的。这是我的代码和我收到的内容
var result = "x"
addstr("1")
var addstr = function(str){
var result = result + str
alert(result)
}
我相信我应该得到x1的结果。然后下次我执行函数x11。然后是x111等......但我得到的结果是“未定义1”和“#39;”。我已经再次运行它并且我得到完全相同的错误,' undefined1'。我不知道发生了什么事,我确定这个问题很简单,虽然我已经找了一段时间,并且没有看到有人遇到这个问题'另外,请考虑我对javascript的新手。谢谢你的时间。
我可以使用一些示例代码来解决这个问题吗?
答案 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)
}