在javascript上的console.log中将变量乘以数字
我希望我可以将一个数字乘以一个变量的结果记录到控制台,但是在使用Javascript时,我得到了NaN 我的尝试:在javascript上的console.log中将变量乘以数字,javascript,Javascript,我希望我可以将一个数字乘以一个变量的结果记录到控制台,但是在使用Javascript时,我得到了NaN 我的尝试: var div = Number(console.log(10 / 50)); //returns 0.2 typeof div //number console.log(div * 100); //returns NaN 我也试过了 var div = Number(console.log(10 / 50)); //returns 0.2 typeof div //number
var div = Number(console.log(10 / 50)); //returns 0.2
typeof div //number
console.log(div * 100); //returns NaN
我也试过了
var div = Number(console.log(10 / 50)); //returns 0.2
typeof div //number
console.log(Number(div) * 100); //returns NaN
为什么会发生这种情况?我应该如何避免?console.log()函数返回undefined,因此Number(console.log(anything))
将始终是NaN
。您的代码假定console.log()
返回它写入浏览器开发人员控制台的值,但事实并非如此
另外,可能与直觉相反,NaN
是一个数字,因此typeof NaN
是“数字”。您的代码测试了Number(console.log())
的返回值,它实际上是一个数字,但该数字是NaN
console.log()
不返回数字,因此您会得到一个NaN
错误
您可以改为:
var div=数量(10/50);
控制台日志(div*100)
控制台。仅日志
显示结果并返回未定义的
直接尝试:
var div = Number(10 / 50);
var div=数量(10/50)//返回0.2
div//编号的类型
控制台日志(div*100)代码>一个小的解决方法:
function log(...values){
console.log(...values);
return values.length === 1 ? values[0] : values;
}
因此,您可以:
var a = log(5/10)*2;
log(a);
log(log(1,2)[0]+3)
或者,反过来做:
var a;
console.log(
a = 10/50,
10*a,
11*a
);
您可以定义自己的函数tap=x=>(console.log(x),x)
,并使用它代替console.logvar div=Number(tap(10/50))代码>谢谢,但是我要找的东西需要我一步一步地记录结果。该解决方案只会给出最终结果。它将给出您使用此函数的任何结果。谢谢!它回答了我如何以简单、直接的方式避免它。