如何在javascript node.js中使用console.log打印函数中的变量列表

如何在javascript node.js中使用console.log打印函数中的变量列表,javascript,node.js,Javascript,Node.js,我试图创建一个程序,列出函数“listacursos”中的每个变量课程,但我看到错误,就好像没有声明变量一样,我尝试了所有方法,因为它必须在2秒内显示包含每个课程信息的消息,我知道如何进行延时,但我无法使用console.log给人留下印象 这是cmd向我显示的错误无法访问listacursos函数中的变量的原因是变量作用域 在Javascript中有两种类型的变量;函数内部声明的变量是局部范围的,这意味着它们只能在该函数中访问: function listacursos(curso1,curs

我试图创建一个程序,列出函数“listacursos”中的每个变量课程,但我看到错误,就好像没有声明变量一样,我尝试了所有方法,因为它必须在2秒内显示包含每个课程信息的消息,我知道如何进行延时,但我无法使用console.log给人留下印象


这是cmd向我显示的错误

无法访问
listacursos
函数中的变量的原因是变量作用域

在Javascript中有两种类型的变量;函数内部声明的变量是局部范围的,这意味着它们只能在该函数中访问:

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**
全局范围的,在函数外部声明的变量,可在任何地方访问:

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!
为了让它发挥作用,我建议你做一些类似的事情

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);
这意味着您将每个“curso”存储在一个“obj”中,更精确地说是JSON,然后返回它。然后创建一个变量来存储JSON,“curso”变量

因为“cursor2”实际上是一个数组,所以必须添加“[0]”才能读取其中的JSON

您可以在此处了解更多关于JSON的信息:

    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);