function listacursos(curso1,curso2,curso3){
let curso1=[{
Ide: 154532,
nombre:'marketing digital basico',
duracion: '15 dias',
valor: 100000,
}];
let curso2=[{
Ide: 154533,
nombre:'diseño grafico basico',
duracion: '30 dias',
valor: 200000,
}];
let curso2={
Ide: 154534,
nombre:'animacion digital',
duracion:'35 dias',
valor: 180000,
};
}
setInterval(function(listacursos){
console.log('el nombre del curso es: '+curso2.nombre)
},3000);**strong text**
我正在尝试创建一个程序,该程序在“ listacursos”函数中列出我的所有变量课程,但是我看到错误,好像未声明该变量一样,我已经尝试了所有操作,因为它必须显示一条包含以下信息的消息每门课程在2秒的时间内,我都知道如何进行时间延迟,但是无法通过console.log留下印象。
这是cmd向我显示enter image description here
的错误答案 0 :(得分:1)
之所以无法访问listacursos
函数内部的变量,是因为变量作用域。
在Javascript中,有两种类型的变量;在函数内部声明的变量是局部作用域,这意味着它们只能在该函数内访问:
function example(){
let foo = "test1";
console.log(foo); // Fine!
}
console.log(foo); // Raises an Error
和全局作用域,它们是在函数外部声明的变量,可以在任何地方访问:
const foo = "test1";
function example(){
console.log(foo); // Fine!
}
console.log(foo); // Fine!
这是一个简化的解释,但有更深入的explanation here。
答案 1 :(得分:0)
Derek Brown的答案是正确的,因为我将为您的代码增加精度
function listacursos(curso1,curso2,curso3){
let curso1=[{
Ide: 154532,
nombre:'marketing digital basico',
duracion: '15 dias',
valor: 100000,
}];
let curso2=[{
Ide: 154533,
nombre:'diseño grafico basico',
duracion: '30 dias',
valor: 200000,
}];
let curso2={ //You already declare a "curso2" variable
Ide: 154534,
nombre:'animacion digital',
duracion:'35 dias',
valor: 180000,
};
}
setInterval(function(listacursos){ // Your function 'listacurso' doesn't return anything, so you are just executing it.
console.log('el nombre del curso es: '+curso2.nombre)
},3000);
为了使其正常工作,我建议您做类似
的操作 function listacursos(){
let obj = {};
let curso1=[{
Ide: 154532,
nombre:'marketing digital basico',
duracion: '15 dias',
valor: 100000,
}];
let curso2=[{
Ide: 154533,
nombre:'diseño grafico basico',
duracion: '30 dias',
valor: 200000,
}];
let curso3={
Ide: 154534,
nombre:'animacion digital',
duracion:'35 dias',
valor: 180000,
};
obj.curso1 = curso1;
obj.curso2 = curso2;
obj.curso3 = curso3;
return obj;
}
setInterval(function(){
let courso = listacursos();
console.log('el nombre del curso es: ', courso.curso2[0].nombre)
},3000);
这意味着您将每个“ curso”存储在JS JSON的“ obj”中,以便更加精确,然后将其返回。然后创建一个变量来存储该JSON,即“ curso”变量。
由于“ curso2”实际上是一个数组,因此您必须添加“ [0]”才能读取其中的JSON。
您可以在这里更喜欢JSON:https://www.w3schools.com/js/js_json.asp