Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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函数返回的NaN结果,其中';未定义';预期_Javascript - Fatal编程技术网

从JavaScript函数返回的NaN结果,其中';未定义';预期

从JavaScript函数返回的NaN结果,其中';未定义';预期,javascript,Javascript,JavaScript程序(显示在此问题条目末尾)正在生成以下意外输出: Adding 12 to 5: NaN 我通过Cygwin命令行shell在Windows10机器上使用Node.js(14.16.0版)。下面是我正在运行的源代码(使用命令'node my_program.js')。输出显示在Cygwin命令行中(console.log指向该命令行): 据我所知,z变量的声明将被提升到功能块的顶部(实际上),但尚未将12的初始定义分配给它。这将使z的初始值“未定义”。然而,当程序运行时,

JavaScript程序(显示在此问题条目末尾)正在生成以下意外输出:

Adding 12 to 5: NaN
我通过Cygwin命令行shell在Windows10机器上使用Node.js(14.16.0版)。下面是我正在运行的源代码(使用命令'node my_program.js')。输出显示在Cygwin命令行中(console.log指向该命令行):

据我所知,z变量的声明将被提升到功能块的顶部(实际上),但尚未将12的初始定义分配给它。这将使z的初始值“未定义”。然而,当程序运行时,NaN是x+z的结果


理解这种行为的任何帮助都是非常感谢的。

未定义的
加上一些东西是
NaN
(不是数字)。请参阅编号(未定义)。好的,是的,这更有意义。所以z的初始值实际上是“未定义的”,正如我所期望的。但是当对语句“x+z”求值时,JavaScript将其强制转换为Nan类型(一个数字+一个未定义)。typeof
Nan
是数字。z是未定义的,当我们将undefined添加到一个数字时,它总是不返回数字(Nan)。
function my_function(x) {

    return x + z;

    var z = 12;

}

console.log("Adding 12 to 5: " + my_function(5));