Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用警报或提示时的古怪变量行为_Javascript_Variables - Fatal编程技术网

Javascript 使用警报或提示时的古怪变量行为

Javascript 使用警报或提示时的古怪变量行为,javascript,variables,Javascript,Variables,我正在学习Javascript,遇到了一些我认为是奇怪的行为 下面的简单代码在控制台日志中生成预测结果。它显示的短语是Hello var test = "Hello!"; console.log(test); 然而,下一个代码段返回了一些我没有预料到的东西。它在控制台日志中返回undefined。此外,即使从未在函数中调用或使用该警报,也会自动执行该警报。这两行是完整的代码 var test = alert("Hello!"); console.log(test); 为什么会弹出警报,为什么

我正在学习Javascript,遇到了一些我认为是奇怪的行为

下面的简单代码在控制台日志中生成预测结果。它显示的短语是Hello

var test = "Hello!";
console.log(test);
然而,下一个代码段返回了一些我没有预料到的东西。它在控制台日志中返回undefined。此外,即使从未在函数中调用或使用该警报,也会自动执行该警报。这两行是完整的代码

var test = alert("Hello!");
console.log(test);

为什么会弹出警报,为什么console.log未定义?我正试着弄清楚机械学,所以提前谢谢你

window.alert()
调用在执行时不返回任何内容,因此它是
未定义的。未定义的
值存储在写入控制台的
test

函数调用类似于任何其他语句。它不需要在另一个要求值的函数中。如果它在任何函数之外,则将立即对其进行求值

当您调用
alert(“Hello!”)
时,它会被调用,并将其返回值传递到左侧


alert
函数返回
undefined
,这就是您在记录时看到的原因。

因为alert不会返回任何内容。。。所以它是未定义的。
alert()
console.log()
都是函数。您期望什么
var test=alert(“Hello!”)要做什么?你所说的“[警报]从未被调用”是什么意思?您调用了
alert()
函数,并将返回的内容保存到
test
中。然后您调用了
console.log()
函数。我用一个新函数
var test=myFunction()测试了您所说的内容
并且确信该函数会像警报函数一样自动运行。因此,在Javascript
var中,测试不一定要等待其他代码调用。页面加载后,变量内部的代码自动开始运行?@DR01D:JavaScript逐行执行。当您调用一个函数时,即在其后面添加
()
,它将运行。比较
警报()
;和
var test=alert()。两者都运行
alert()
@DR01D-
var测试
是指调用函数时得到的返回值,而不是函数本身。要分配函数,您必须使用
var test=alert
,而不使用
()
。并非总是这样。这个变量中的函数只有在被调用时才会运行,
var test=function(){document.getElementById(“demo”).innerHTML=“Hello!”
}但是当我添加
test()时它运行。@DR01D-这是因为您已从使用变量(
警报
)更改为使用创建新函数的函数表达式,该变量的值为函数(并且在调用该函数之后使用函数)。如果将
()
放在末尾,则会立即调用该函数
var test=function(){document.getElementById(“demo”).innerHTML=“Hello!”;}()