在javascript上的console.log中将变量乘以数字

在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

我希望我可以将一个数字乘以一个变量的结果记录到控制台,但是在使用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
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.log
var div=Number(tap(10/50))谢谢,但是我要找的东西需要我一步一步地记录结果。该解决方案只会给出最终结果。它将给出您使用此函数的任何结果。谢谢!它回答了我如何以简单、直接的方式避免它。