0

这是一个非常简单的 JavaScript 代码,但我得到了这个未定义的错误,我不知道我做错了什么。我从以下脚本中得到的结果很高兴见到你 undefinedRaj。有人可以解释 undefined 指的是什么以及如何删除它。

   var greeting = function (name) {
   document.write("Great to see you," + " " + name);
   };

   document.write(greeting(name) + "Raj");
4

6 回答 6

5

你有两个变量叫做name. 一个是您创建的函数的本地函数,另一个是全局函数。

全局的从来没有定义过。因此,当您致电时,greeting(name)您将传递nameundefined. 这意味着局部变量undefined也是。

您的意图可能是:

  1. "Raj"作为和的传递name
  2. 不是document.write函数的返回值(因为你没有return声明,所以也是undefined

这样的:

var greeting = function (name) {
    document.write("Great to see you," + " " + name);
};

greeting("Raj");
于 2013-08-13T07:17:48.143 回答
2

我相信你想这样做:

var greeting = function (name) {
    return "Great to see you," + " " + name;
};
document.write(greeting("Raj"));
于 2013-08-13T07:20:04.687 回答
1

您必须"Raj"作为参数传递给greeting方法。

它应该是

var greeting = function (name) {
   document.write("Great to see you," + " " + name);
};

greeting("Raj");

或者

var greeting = function (name) {
   return "Great to see you," + " " + name;
};
document.write(greeting("Raj"));

在您的代码中,首先使用全局变量名称调用全局变量名称,该名称默认情况下greeting()是指window.name哪个变量,因此它会打印,然后返回到被调用的变量,然后在此处执行的返回如前所述,因此它会打印,因此结果''Great to see you,undefineddocument.write(greeting(name) + "Raj")greeting(name)undefinedundefinedRaj

于 2013-08-13T07:19:27.917 回答
1

该函数无法工作,因为它什么也不返回,有两种方法可以做到:

var greeting = function (name) {
   document.write("Great to see you," + " " + name);
   };

greeting("Raj");

或者

 var greeting = function (name) {
      return ("Great to see you," + " " + name);
       };

document.write(greeting("Raj"));
于 2013-08-13T07:20:27.030 回答
0

由于您已经document.write()在函数中使用过,因此在调用函数时不需要它
Cheers http://jsfiddle.net/bQcWX/

var greeting = function (name) {
   document.write("Great to see you," + " " + name);
};

greeting("Raj");
于 2013-08-13T07:22:47.593 回答
0

如果你想

很高兴见到你,拉吉

因此,您应该致电

greeting("Raj");

在您编写的代码中,您正在调用 document.write(greeting(name)) 但您之前没有定义 name,因此您收到此“undefinedRaj”消息

于 2013-08-13T07:18:21.620 回答