Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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_Function_Variables_Nan - Fatal编程技术网

Javascript 为什么变量的输出是NaN

Javascript 为什么变量的输出是NaN,javascript,function,variables,nan,Javascript,Function,Variables,Nan,我写了这样简单的代码 var value = function(a){return a*3;} var number = value(a); 当我输入值(5)时我会得到15号那没关系,但是在输入数字之后我会得到NaN。 我只想在变量中写入函数的结果。JavaScript不是一个变量,它不能在变量中存储像x*3这样的代数表达式。相反,当您这样做时: var y = x * 3; 变量y将设置为执行该语句时x的值的3倍。如果之前没有为x赋值,则其默认值将为未定义。根据undefined在算术表达

我写了这样简单的代码

var value = function(a){return a*3;}
var number = value(a);
当我输入<代码>值(5)时我会得到15号那没关系,但是在输入
数字之后我会得到
NaN
。 我只想在变量中写入函数的结果。

JavaScript不是一个变量,它不能在变量中存储像
x*3
这样的代数表达式。相反,当您这样做时:

var y = x * 3;
变量
y
将设置为执行该语句时
x
的值的3倍。如果之前没有为
x
赋值,则其默认值将为
未定义
。根据
undefined
在算术表达式中使用时自动转换为
NaN
,并且
NaN*3
等于
NaN

(实际上,如果您试图执行上面的代码而不首先声明变量
x
,您应该得到的是
ReferenceError:x未定义
异常。但是如果您在该代码之前添加
var x;
语句,声明变量
x
,但未定义其值,那么您确实会得到
NaN
作为
y
的值)

将乘法封装在函数中这一事实在这里没有区别。以下代码:

var f = function (a) { return a * 3 };
var y = f(x);
与以下操作完全相同:

var y = x * 3;

(当然,除了前一个版本还定义了函数
f

抱歉,它有点不清楚。所以它可以按预期工作。您想在哪里写数字?任何示例用例?是因为您将
a
作为参数传递
var number=value(a)
a
不包含数字?对于这样的代码:
var value=function(a){return a*3;}var number=value(5);console.log(number);
我得到
15
不确定你的问题是什么意思。看起来
a
在定义
number=value(a)时没有设置任何值
.So
value(a)
返回NaN,这就是
number
设置的值。
a
value
函数作用域的本地值。不能在函数之外使用它。