我希望我可以通过变量将数字相乘的结果登录到控制台,但是在使用Javascript时我得到了NaN。
我的尝试:
import requests
from html.parser import HTMLParser
class dataFinder(HTMLParser):
def open_webpage(self):
request = requests.get('https://www.summet.com/dmsi/html/readingTheWeb.html')
self.webpage_text = request.text
return self.webpage_text
我也试过
var div = Number(console.log(10 / 50)); //returns 0.2
typeof div //number
console.log(div * 100); //returns NaN
为什么会发生这种情况,我该如何避免呢?
答案 0 :(得分:5)
console.log()
函数返回undefined,因此Number(console.log(anything))
始终为NaN
。您的代码假定console.log()
返回它写入浏览器开发人员控制台的值,但情况并非如此。
此外,可能直观地反驳,NaN
是一个数字,因此typeof NaN
是“数字”。您的代码测试了Number(console.log())
的返回值,它实际上是一个数字,但该数字为NaN
。
答案 1 :(得分:2)
console.log
仅显示结果并返回未定义。
直接尝试:
var div = Number(10 / 50);
var div = Number(10 / 50); //returns 0.2
typeof div //number
console.log(div * 100);
答案 2 :(得分:1)
console.log()
未返回数字,因此您收到NaN
错误。
您可以改为:
var div = Number(10 / 50);
console.log(div * 100);
希望这有帮助!
答案 3 :(得分:0)
一个小解决方法:
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
);