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

时间:2019-03-16 04:29:32

标签: javascript node.js

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

的错误

2 个答案:

答案 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