Javascript 将变量分配给警报
Javascript assign variable to alert
我想知道你能分配一个变量来提醒吗? 它的真正含义和作用是什么?例如
var a = alert('test');
我尝试了一下,一旦页面加载,当我调用它时,变量a
仍然'undefined'
,就会弹出警报。我们不是应该使其成为一个匿名函数,里面有警报吗
var a = function(){ alert('test'); }
如果我们想触发某事警报?为什么javascript允许你这样做?
var a = alert('test');
将此语句视为任何其他变量赋值。为了执行分配,首先评估右侧。在本例中,它是一个函数调用,因此调用该函数并获取其返回值。在警报的情况下,返回值为 undefined
。它不会返回任何内容。
然后将返回值分配给 a
,因此a
以值 undefined
结束。
作为该语句的副作用,将显示一条警报消息。这是调用 alert(( 并获取其返回值的结果。
function foo(x) {
return x * 2;
}
var a = foo(3);
此代码在结构上类似于警报调用,将导致a
为 6。但是 alert(( 不返回值。更像是这样:
function bar(x) {
return;
}
var a = bar(3);
现在a
undefined
.
var a = alert('test');
这表示执行alert('test')
并将该函数的返回值分配给名为 a
的变量。
这与
:var max = Math.max(1,2,3,4);
其中max
最终会将其中的值4
作为执行Math.max(1,2,3,4)
的返回值。
var a = function(){ alert('test'); }
这表示声明一个匿名函数并将该函数对象分配给变量 a
。 由于该函数刚刚声明,因此此时不执行。 您可以在将来使用 a()
.
你评论说:
我只是想知道为什么javascript允许我们这样做,如果它没有任何意义
好吧,JavaScript(以及任何其他语言,包括英语(允许你做很多没有任何意义的事情,只要语法有效。例如,下面的片段也没有任何意义:
var a;
a = a; // so what?
function something() { /* nothing */ }
var b = something(); // very similar to your example!
如果您可以从某些功能进行分配,但不能从其他功能进行分配,那不是不太一致吗?如果输入了语言,则会产生错误,但既然不是,那有什么问题呢?如果它们不返回值,则返回值undefined
,并且如果您尝试将其分配给变量,则不会中断任何内容。因此,您可以创建有时返回某些内容,有时不返回的函数。如果使用得当,这可能是一个优势。这是一个功能,而不是语言的问题。
如果你这样做:
var a = function(){ alert('test'); }
然后,您可以执行以下操作:
a();
既然你已经定义了一个匿名函数。
警报是一个函数,因此您本身无法为其分配任何内容。
如果你想在变量有值时弹出一些东西,你可以做一些事情,比如 -
$(document).ready(function() {
if (someVar != undefined) {
alert(someVar);
}
});
- 在运行时使用预先确定的对象分配变量
- 重新分配变量和重新定义之间的性能差异
- Javascript:在对象中分配变量时命名函数的好处
- Angularjs 控制器在服务方法返回之前从服务中分配变量
- 在 JavaScript 中的 for 循环中重新分配变量的目的是什么?
- 按设置的数量拆分字符串,并为拆分分配变量
- 嵌套的 if/else 语句讨论了分配变量.我已经这样做了,但它仍然不起作用
- 有没有理由不在 while 块声明中分配变量
- JSON - 访问 JSON 数组并分配变量
- Angular2 火力基地检索并分配变量
- 是否可以在运行依赖项之前在 gulp 任务中分配变量
- 在 JS 中的 for 循环中重新分配变量是什么意思
- 使用多种组合分配变量的最佳方法是什么
- 使用函数从字符串中分配变量名称
- 如何调用chrome.storage.sync.get并在页面加载时分配变量
- 在JavaScript中用冒号分配变量的语法有效吗
- 带有单选按钮的If语句不分配变量
- 正在从内部回调中分配变量
- Javascript在匿名函数中分配变量的值
- 使用jQuery分配变量类型时出错