如何在JavaScript Node.js中使用Console.log在函数中打印一个变量列表


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向我显示的错误,在此处输入图像描述

您无法访问listacursos函数内部变量的原因是因为 clible Scoping

在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!

这是一个简化的解释,但是这里有一个更深入的解释。

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"存储在" obj" js json中,以更准确地说,然后将其返回。然后,您创建一个可存储该JSON的变量,即" Curso"变量。

AS" curso2"实际上是一个数组,您必须添加" [0]"才能读取内部的JSON。

您可以在此处更喜欢JSON:https://www.w3schools.com/js/js_json.asp

最新更新