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)时没有设置任何值
.Sovalue(a)
返回NaN,这就是number
设置的值。a
是value
函数作用域的本地值。不能在函数之外使用它。