我写了这样的简单代码
var value = function(a){return a*3;}
var number = value(a);
当我输入value(5);
时,我会得到数字15即可,但在输入number;
生病后获取NaN
。
我只想写变量函数的结果。
答案 0 :(得分:0)
JavaScript不是computer algebra system,它不能在变量中存储像x * 3
这样的代数表达式。相反,当你这样做时:
var y = x * 3;
变量y
将设置为执行该语句时x
具有的值的3倍。如果之前未向x
分配任何值,则其默认值为undefined
。根据{{3}} undefined
在算术表达式中使用时会自动转换为NaN
,NaN * 3
等于NaN
。
(实际上,如果你试图执行上面的代码而不首先声明变量x
,你应该获得的是ReferenceError: x is not defined
例外。但是如果你在该代码之前添加var x;
语句,以声明变量x
但保持其值未定义,然后您确实将NaN
作为y
的值。 )
你在函数中包含乘法的事实在这里没有任何区别。以下代码:
var f = function (a) { return a * 3 };
var y = f(x);
完全相同:
var y = x * 3;
(当然,前一版本还定义了函数f
。)