首页 > 解决方案 > 为什么第一个console.log 没有定义greeter?

问题描述

const greeter = 'CodeQuotient';

const sayHi = function greetings() 
{
 console.log(`${greeter} says, 'Hi!'`);
 
 var greeter = 'CQ';

 console.log(`${greeter} says, 'Hi!'`);
}


sayHi();

如果我运行此代码,则输出为

undefined says, 'Hi!'
CQ says, 'Hi!'

我想问为什么第一个 console.log 的第一个欢迎程序是未定义的

而且,如果我删除了内部 greeter 变量,则外部变量将分配给两个 console.logs 。为什么?

const greeter = 'CodeQuotient';

const sayHi = function greetings() {
  console.log(`${greeter} says, 'Hi!'`);


  console.log(`${greeter} says, 'Hi!'`);
}

sayHi();

删除内部greeter变量后上述代码的输出是

CodeQuotient says, 'Hi!'

CodeQuotient says, 'Hi!'

为什么?

标签: javascriptfunctionscope

解决方案


推荐阅读