代码如下:
var name = 'test'; //declaring variable
function nameEcho(name) {
var namephrase = "The saved name is, " + name; // adding the variable to a string
alert(namephrase); // make a popup with the variable
}
上面的代码在JS文件中。
当我通过HTML页面上的按钮触发该功能时,我会收到一条警告:The saved name is,
很抱歉,如果这是一个非常简单的问题,我是JS的新手,但必须要考虑一些问题。任何帮助将不胜感激。
答案 0 :(得分:2)
函数中的代码不使用外部的变量,因为您已使用函数参数隐藏了该变量:
var name = 'test'; //declaring variable
function nameEcho(name) {
// Here ----------^
var namephrase = "The saved name is, " + name;
alert(namephrase);
}
该函数的name
参数阻止函数frm能够使用在其外部声明的name
变量。
选项:
将名称传递给函数,并可能为参数使用不同的名称。
var name = 'test'; //declaring variable
function nameEcho(arg) {
// You can use both `name` and `arg` here
var namephrase = "The saved name is, " + name; // or `arg`
alert(namephrase);
}
如果要使用变量,请删除参数:
var name = 'test'; //declaring variable
function nameEcho(/*...no `name` here...*/) {
var namephrase = "The saved name is, " + name;
alert(namephrase);
}
答案 1 :(得分:0)
您使用name
作为函数nameEcho
的参数,因此当您在函数内部使用name
时,它将使用参数而不是全局变量。
答案 2 :(得分:0)
在您的代码中,有一个名为name
的局部变量作为参数。因此它将尝试访问局部变量的值。
像bellow
一样更改你的代码var name = 'test'; //declaring variable
function nameEcho(arg) {
var namephrase = "The saved name is, " + arg; // adding the variable to a string
alert(namephrase); // make a popup with the variable
}
答案 3 :(得分:0)
函数内部的参数不会接受在函数外声明的变量。
您需要在其调用中作为变量传递的参数。
var name = 'test'; //declaring variable
function nameEcho(n) {
var namephrase = "The saved name is, " + n; // adding the variable to a string
alert(namephrase); // make a popup with the variable
}
现在,这样打电话:
nameEcho(name);//which will give you that variable test...
或者,如果您不关心参数并且只想使用该变量,那么在不传递如下所示的参数的情况下创建函数:
var name = 'test'; //declaring variable
function nameEcho() {
var namephrase = "The saved name is, " + name; // adding the variable to a string
alert(namephrase); // make a popup with the variable
}
答案 4 :(得分:0)
您正在使用函数的参数覆盖name
全局变量。
function nameEcho(name) {
// here 'name' is a different (local) variable than the global
}
如果您打算像这样nameEcho('bob')
调用函数,则不应在函数之外声明name
。