Javascript无法获取要显示的警报

Javascript无法获取要显示的警报,javascript,Javascript,为什么下面的代码不打开一个带有文本foo的警报框 function wrapInObject(value) { return { value: value }; } alert(wrapInObject("foo").value); 还有,为什么下面的代码没有用文本栏打开一个警报框 var a = "foo", b = a; b += "bar"; alert(a); 大括号应该和return语句在同一行。这是因为javascript自动插入分

为什么下面的代码不打开一个带有文本foo的警报框

function wrapInObject(value) {
    return
    {
        value: value
    };
}
alert(wrapInObject("foo").value);
还有,为什么下面的代码没有用文本栏打开一个警报框

var a = "foo",
    b = a;
b += "bar";
alert(a);
大括号应该和return语句在同一行。这是因为javascript自动插入分号。它假定return语句已结束并插入分号。因此它将返回未定义。您正在尝试获取undefined的value属性,它将抛出一个错误。这就是为什么警报没有出现

因此,您的代码应该是:

function wrapInObject(value) {
    return {
        value: value
    };
}
关于第二个问题:

var a = "foo",
    b = a;
b += "bar";
alert(a);
它是按值传递的,而不是按引用传递的。所以改变b并不改变a,这就是为什么你只得到foo

如果你提醒B,它会给你食物棒

大括号应该和return语句在同一行。这是因为javascript自动插入分号。它假定return语句已结束并插入分号。因此它将返回未定义。您正在尝试获取undefined的value属性,它将抛出一个错误。这就是为什么警报没有出现

因此,您的代码应该是:

function wrapInObject(value) {
    return {
        value: value
    };
}
关于第二个问题:

var a = "foo",
    b = a;
b += "bar";
alert(a);
它是按值传递的,而不是按引用传递的。所以改变b并不改变a,这就是为什么你只得到foo


如果您提醒B,它将为您的提醒问题提供foobar

。。。由于返回问题已经解决,您正在将一个var传递给警报函数,而a只是foo,在您修改var后,将成为foobar的是b。对于您的警报问题。。。由于返回问题已经解决,您正在向警报函数传递一个var,而a只是foo,在修改var后,b变成了foobar。@testndtv上面的答案对您有帮助吗?@testndtv上面的答案对您有帮助吗?