Javascript 使var值持久化,而不考虑时间间隔
以下是我的javascript代码:Javascript 使var值持久化,而不考虑时间间隔,javascript,setinterval,var,Javascript,Setinterval,Var,以下是我的javascript代码: window.setInterval(run, 1000); var oldprice = 1; function run(){ var price = $('#s3').text(); if(price > oldprice){ console.log("price gone up"); var oldprice = price; } if(price == oldprice){
window.setInterval(run, 1000);
var oldprice = 1;
function run(){
var price = $('#s3').text();
if(price > oldprice){
console.log("price gone up");
var oldprice = price;
}
if(price == oldprice){
console.log("price remains");
}
if(price < oldprice){
console.log("price dropped");
var oldprice = price;
}
}
window.setInterval(运行,1000);
var-oldprice=1;
函数运行(){
var price=$('#s3').text();
如果(价格>旧价格){
console.log(“价格上涨”);
var oldprice=价格;
}
如果(价格==旧价格){
控制台日志(“价格剩余”);
}
如果(价格<旧价格){
console.log(“价格下跌”);
var oldprice=价格;
}
}
如何使
oldprice
的值持久化,以便记住它?不要在函数中创建一个具有相同名称的局部范围的变量
var oldprice = price;
删除
var
不要在函数内创建一个局部作用域的同名变量
var oldprice = price;
移除run()中的var
,更改此选项:
var oldprice = price;
对此
oldprice = price;
当您想要访问具有全局作用域的变量时,您正在声明一个新变量(具有局部作用域)
局部变量会遮挡全局变量。
换句话说,它们的名字相同并不重要,它们是不同的。它们被放置在不同的存储单元中
您的代码与此代码具有相同的行为:
window.setInterval(run, 1000);
var oldprice = 1;
function run(){
var price = $('#s3').text();
if(price > oldprice){
console.log("price gone up");
var local_oldprice = price;
}
if(price == local_oldprice){
console.log("price remains");
}
if(price < local_oldprice){
console.log("price dropped");
var local_oldprice = price;
}
}
window.setInterval(运行,1000);
var-oldprice=1;
函数运行(){
var price=$('#s3').text();
如果(价格>旧价格){
console.log(“价格上涨”);
var本地价格=价格;
}
如果(价格==本地价格){
控制台日志(“价格剩余”);
}
如果(价格<当地价格){
console.log(“价格下跌”);
var本地价格=价格;
}
}
在JavaScript
中使用全局变量时,一般提示是将其名称命名为:
global\u oldprice
而不是:
oldprice
换句话说,在变量的名称中添加全局\
另一种方法是创建一个全局数组,他的名字中包含了全局单词,全局变量是数组的单元格
通过这种方法,您的全局变量将被称为:
globalVars[i]
当然,这也取决于个人品味。在您的跑步()中,更改以下内容:
var oldprice = price;
对此
oldprice = price;
当您想要访问具有全局作用域的变量时,您正在声明一个新变量(具有局部作用域)
局部变量会遮挡全局变量。
换句话说,它们的名字相同并不重要,它们是不同的。它们被放置在不同的存储单元中
您的代码与此代码具有相同的行为:
window.setInterval(run, 1000);
var oldprice = 1;
function run(){
var price = $('#s3').text();
if(price > oldprice){
console.log("price gone up");
var local_oldprice = price;
}
if(price == local_oldprice){
console.log("price remains");
}
if(price < local_oldprice){
console.log("price dropped");
var local_oldprice = price;
}
}
window.setInterval(运行,1000);
var-oldprice=1;
函数运行(){
var price=$('#s3').text();
如果(价格>旧价格){
console.log(“价格上涨”);
var本地价格=价格;
}
如果(价格==本地价格){
控制台日志(“价格剩余”);
}
如果(价格<当地价格){
console.log(“价格下跌”);
var本地价格=价格;
}
}
在JavaScript
中使用全局变量时,一般提示是将其名称命名为:
global\u oldprice
而不是:
oldprice
换句话说,在变量的名称中添加全局\
另一种方法是创建一个全局数组,他的名字中包含了全局单词,全局变量是数组的单元格
通过这种方法,您的全局变量将被称为:
globalVars[i]
当然,这也取决于个人喜好。不要使用var oldprice
insiderun()
函数重新创建变量。只需给它赋值,不要在run()
函数中使用var oldprice
重新创建变量。只要给它赋值就行了