可以't在JavaScript变量中添加更多单词

Can't add more words in JavaScript variable

本文关键字:添加 单词 变量 JavaScript 可以      更新时间:2023-09-26

当我调用reality((时,我想打印宝蓝,但我得到了未定义的宝蓝。我只是JavaScript的初学者。请帮我找出问题所在。

var color = "Blue";
function reality() {
  var color = "Royal " + color;
  console.log(color);
}
reality();

请帮我找出问题出在哪里。

在JavaScript中,当所有用var声明的变量都将具有默认值undefined时,除非显式地指定了一些内容。

在您的情况下,

var color = "Royal " + color;

您正在使用color来定义变量color本身。所以,

"Royal " + color

将成为

"Royal " + undefined

这就是为什么结果是"皇家未定义"。


基本上,在reality中声明的变量color会遮蔽在该函数范围之外声明的变量。所以,你需要选择一个不同的名字。

var color = "Blue";
function reality() {
  var realityColor = "Royal " + color;
  console.log(realityColor);
}
reality();

将打印

Royal Blue

注意:如果您实际上想修改在外部声明的color变量,那么您不应该在reality中定义一个名为color的变量,而是应该直接访问它,就像这个

var color = "Blue";
function reality() {
  color = "Royal " + color;
  console.log(color);
}
reality();

但是,此函数不会返回任何内容。为了使其更好,您可以返回值并为其分配变量,如

var color = "Blue";
function reality() {
  return "Royal " + color;
}
color = reality();
console.log(color);
var color = "Blue";
function reality() {
  color = "Royal " + color;
  console.log(color);
}
reality();

颜色是全局定义的,因此可以在函数内部进行更改,但如果您再次定义,则会使用未定义的null。