Angular 为什么我的常量变量输出不是空的
这可能很愚蠢,但我已经阅读了太长时间的代码,似乎无法找到为什么我的变量在控制台中没有打印为空,如果它没有到达实际将值推入其中的函数。它很好用,我只是想知道为什么 我已经打印了许多console.log来跟踪填充变量(它是一个数组)的任何代码行,我也在代码的其他部分尝试了不同的方法,但它是一个常量变量,因此可以从函数外部为它分配不同的值Angular 为什么我的常量变量输出不是空的,angular,typescript,angular6,constants,Angular,Typescript,Angular6,Constants,这可能很愚蠢,但我已经阅读了太长时间的代码,似乎无法找到为什么我的变量在控制台中没有打印为空,如果它没有到达实际将值推入其中的函数。它很好用,我只是想知道为什么 我已经打印了许多console.log来跟踪填充变量(它是一个数组)的任何代码行,我也在代码的其他部分尝试了不同的方法,但它是一个常量变量,因此可以从函数外部为它分配不同的值 function ABC() { console.log('FUNCTION BEGINS...'); const tempDates: Array&l
function ABC() {
console.log('FUNCTION BEGINS...');
const tempDates: Array<Moment> = [];
console.log(tempDates);
console.log('After creating the variable...');
console.log('Before log tempdates');
console.log(tempDates);
const start_date = this.date;
let dateToAdd = start_date;
tempDates.push(dateToAdd);
console.log(dateToAdd);
console.log(tempDates);
}
函数ABC(){
log('函数开始…');
常量tempDates:Array=[];
console.log(tempDates);
log('在创建变量之后…');
console.log(“在日志临时日期之前”);
console.log(tempDates);
const start_date=this.date;
let dateToAdd=开始日期;
tempDates.push(dateToAdd);
console.log(dateToAdd);
console.log(tempDates);
}
也许我错了,分析过度了,但我希望第一次打印常量“tempDates”时打印一个空数组。但实际输出的数组中有3个日期,如果条件为真,则实际填充这些日期,之后会有许多行代码
这是控制台的外观:
这是因为现在Chrome控制台处理对象的方式。它本质上会打印一个指向该对象内容的指针——如果内容发生变化,控制台中的输出也会发生变化。为了准确地查看控制台中给定时间点的对象或数组的外观,请确保在
console.log()
语句中使用JSON.stringify()
或.toString()
将其转换为不会更改的字符串
console.log(JSON.stringify(myArray))
console.log(myArray.toString())
如果你感兴趣的话
这就是说,你的代码按预期工作,Chrome只是在骗人 @dracarons很高兴我能帮忙。我也不止一次被这个咬过!