Javascript将变量分配给警报

pet*_*ter 3 javascript alert

我想知道你能指定一个变量来提醒吗?这到底意味着什么?例如,

var a = alert('test');  
Run Code Online (Sandbox Code Playgroud)

我试了一下,一旦页面加载,当我调用它时变量a仍然存在'undefined'时,警报会弹出.我们不是想把它变成一个匿名函数,里面有警报

var a = function(){ alert('test'); }
Run Code Online (Sandbox Code Playgroud)

如果我们想要触发某事的警报?为什么javascript允许你这样做?

Joh*_*ica 5

var a = alert('test');
Run Code Online (Sandbox Code Playgroud)

可以像任何其他变量赋值一样考虑此语句.为了执行分配,首先评估右侧.在这种情况下,它是一个函数调用,因此调用该函数并获取其返回值.在alert的情况下,返回值是undefined.它没有返回任何东西.

然后返回值a,因此a最终得到值undefined.

作为语句的副作用,将显示警告消息.这是因为调用alert()并获取其返回值.

function foo(x) {
    return x * 2;
}

var a = foo(3);
Run Code Online (Sandbox Code Playgroud)

此代码在结构上与警报调用类似,并且将导致a为6.但是然后alert()不返回值.它更像是这样的:

function bar(x) {
    return;
}

var a = bar(3);
Run Code Online (Sandbox Code Playgroud)

现在aundefined.