所以我正在做这样的事情......
var crypto = tradeMsg.coin
var oldPrice;
for (let i=0; i<500; i++) {
var compare = cryptoSName[i].innerHTML
if (compare == crypto) {
document.getElementById('price' + i).innerHTML= "$" + (tradeMsg.message.msg.price.toFixed(4));;
document.getElementById('perc' + i).innerHTML= tradeMsg.message.msg.perc + "%";
var newPrice = tradeMsg.message.msg.price
if (newPrice<oldPrice) {
document.getElementById("cryptotable" + i).style.background = "#ffe5e5";
console.log(oldPrice)
}
else if (newPrice>oldPrice) {
document.getElementById("cryptotable" + i).style.background = "green";
}
console.log(oldPrice);
console.log(newPrice);
var oldPrice = tradeMsg.message.msg.price
setTimeout(function() {
document.getElementById("cryptotable" + i).style.background = "white"
}, 1000);
}
}
当我console.log
旧价格时,它显示未定义,而我期待此前的值。我觉得我在吊装这里有问题。
如果有人能帮到我,我将非常感激?
有人也可以解释我的意思..
JavaScript的范围是功能级别,而不是块级别和创建 闭包只意味着封闭的范围被添加到 封闭函数的词汇环境
答案 0 :(得分:0)
oldPrice变量需要在初始时间声明然后检查