Javascript 为什么'+=';运算符返回未定义?

Javascript 为什么'+=';运算符返回未定义?,javascript,jquery,Javascript,Jquery,当我准备一个函数时,我注意到它最初返回“undefined”以及它应该返回的其他信息。这是: 我这样调用函数: $('#glorp').append(foo()); 报税表如下: 未定义这个,那个,另一个 当我预料到这一点时: 这个,那个,另一个 我做了相当多的挖掘,但我无法找到任何确定的。然后我将第一个glorp操作符更改为just=,未定义的消息消失了 由于glorp是在函数打开时声明的,因此应该在if语句中定义它,并且似乎是因为成功返回了“this” 返回的“未定义”是什么 因为 var

当我准备一个函数时,我注意到它最初返回“undefined”以及它应该返回的其他信息。这是:

我这样调用函数:

$('#glorp').append(foo());
报税表如下:

未定义这个,那个,另一个

当我预料到这一点时:

这个,那个,另一个

我做了相当多的挖掘,但我无法找到任何确定的。然后我将第一个
glorp
操作符更改为just
=
,未定义的消息消失了

由于
glorp
是在函数打开时声明的,因此应该在
if
语句中定义它,并且似乎是因为成功返回了“this”

返回的“未定义”是什么

因为

var glorp;  //<--undefined
console.log(glorp);  //logs undefined

glorp = glorp + "x";  // undefined + "x" -> "undefined" + "x" -> "undefinedx"
console.log(glorp);  //logs "undefinedx"

您需要在开始时将
glorp
设置为空字符串

var glorp = "";

对于输出,当您添加
undefined+string
时,它使
undefined
成为字符串值
“undefined”
。因此
“undefined”+“this”=“undefinedthis”

您没有初始化变量。您要做的第一件事是执行
+=
操作,此时变量的值是
未定义的
。变量的初始值是
未定义的
。只需将其更改为“var glorp=”“;”咖啡休息时间;)还有另一个输入错误@Pointy:-/I确实需要咖啡。如果它是未定义的,那么为什么它在返回“未定义”的同时返回值“this”。这只是“这个”的缩写其计算结果为
glorp=undefined+'this'。啊!该死,我真的需要喝点咖啡。谢谢@FelixKling
var glorp = "";
var glorp = "";