为什么我的Javascript在运行后会有个undefined?

输入asz后得出就像这样子*-s-%undefined
但是我只想要前面那部分,*-s-%
大神请帮帮我

<html>
<head>
<title>Yinan Fang</title>
<script>
function changeChar(a)
{
switch(a)
{
case "A":
document.write("*");
break;
case "a":
document.write("*");
break;
case "z":
document.write("%");
break;
case "Z":
document.write("%");
break;
default:
document.write(a);

}
return;
}
</script>
</head>
<body>
<script>
var st = prompt("Enter a string");
var count = 0

while (count < st.length - 1)
{
var a = st.charAt(count)
changeChar(a);
document.write("-");
count++;
if (count == st.length - 1)
{
a = st.charAt(count);
document.write(changeChar(a));
}
}
</script>
</body>
</html>

第1个回答  2012-09-30
倒数第六行
document.write(changeChar(a));
改为
changeChar(a);
第2个回答  2012-09-29
只要修改循环内容,注意对比~!
while (count < st.length )
{
var a = st.charAt(count)
changeChar(a);
count++;
if(count!=st.length){

document.write("-");
}

}追问

这个方法不错!
不过我想知道是不是不能这样document.write(changeChar(a));
就是document.write里面不能放function啊?这样理论上好像没什么问题啊

追答

document.write里面可以用你那个chageChar(a),为什么会返回undedfined?
首先 changeChar(a)是函数但是没有返回值,没有返回值的函数结果就是undefined,所以在document。write(changeChar(a)//这个无返回值,即实际要输出的是undefined)===document。write(“undefined”)。
不知道看明白了没,不懂再问~!

追问

我是新学计算机的,麻烦大神再指点一下

while (count < st.length )
{
var a = st.charAt(count)
changeChar(a);
count++;
if(count!=st.length)
{
document.write("-");
}
}
在这个循环里面有个 changeChar(a);啊,如果函数返回值是undefined的话,那为什么还能输出*-s-%之类的东西呢?
另外,可不可以给function设置一个返回值让document。write(changeChar(a))正常输出呢?

追答

在这个循环里面有个 changeChar(a);啊,如果函数返回值是undefined的话,那为什么还能输出*-s-%之类的东西呢?
答:输出*-s-%是 函数内部document.write输出的结果 而不是 函数本身的返回值。

另外,可不可以给function设置一个返回值让document。write(changeChar(a))正常输出呢?

答:可以。按你例子,其实外面document.write完全多余,其实changeChar(a)已经达到输出结果了。通过changeChar内部doucument。write实现的。

本回答被提问者采纳

为什么javascript的对象会返回undefined??
一种常见的情况是,在网页的JavaScript代码中,可能某处尝试将对象直接输出到HTML中,而没有将其转换为合适的字符串格式。例如,假设有一个JavaScript对象包含用户信息,如姓名和电子邮件,代码可能试图直接将这个对象插入到网页的某个元素中。由于对象无法直接显示为有意义的文本,因此浏览器会尝试调用toString...

什么是undefined?
1. **数据未加载完成**:在数据从服务器传输到客户端的过程中,如果页面尝试访问这些数据但数据还未完全加载,就可能导致“undefined”错误。2. **脚本错误**:JavaScript代码中存在逻辑错误或语法错误,导致变量或函数未能按预期工作,从而返回了未定义的值。3. **API响应问题**:如果网页依赖于外部AP...

javascript中为什么会出现undefined
undefined 代表未定义,默认定义变量不赋值时,该变量的值就是 undefined。当你调用一个不存在的变量、对象时就会提示,比如:定义一个对象 const a = {b: { c: '1' }},这个时候你调用 a.b.c 就会返回 1,如果你调用 a.c.d ,就会爆 connot read properties of undefined( reading 'd')...

undefined什么意思?
1、1undefined是指页面出现了未知错误的原因的2看一下页面源码,如果源码上也是undefined那就说明页面本来就是这样,如果源码的这部分是js代码,就说明js代码使用的数据有问题3提示undefined一般是在开发网站的时候定义。2、undefined在计算机中是指没有找到或没有的意思,例如某个用户某个操作没有被获取到...

undefined是什么原因?如果出现undefined怎么办?
出现undefined的原因有以下几种:1.变量或函数未定义:如果你在代码中使用了一个未定义的变量或函数,就会出现undefined。2.返回值问题:在函数中没有明确的return语句,或者return语句没有返回任何值,就会返回undefined。3.对象属性未找到:如果你尝试访问一个对象的属性,而该属性不存在,那么该属性的值...

js为什么运行完后会出现undefined
出现原因有以下2种:1、变量没赋初始值 2、函数没有返回值 示例:第一种情况: var a; alert(a);\/\/这里没有初始化值,会出现undefined第一种情况: var a='1'; function k(){ } a=k();\/\/这里函数没有返回值,会出现undefined ...

JavaScript 怎么老是出现 undefined ??
这个是 因为 脚本script 是先于 页面 脚本执行的 当脚本运行时 getElementById("TemplatesTd")并没有被加载 这样 JS 就找不到 TemplatesTd 对象 当然就显示未定义 如果你这样 function gn(){ document.getElementById("TemplatesTd").innerHTML = str;window.TemplatesTd.innerHTML = str;} 然...

javascript中undefined是什么意思啊?
一、在JavaScript中,undefined是一个特殊的值,表示一个未定义或不存在的值。它通常出现在以下情况下:1、变量声明但未赋值:当声明一个变量但未给它赋值时,该变量的默认值为undefined。let x;console.log(x); \/\/ 输出 undefined 2、访问对象属性或数组元素不存在的值:当试图访问对象中不存在的...

undefined什么意思?
在JavaScript中,"undefined"是一个特殊的值,它用于表示一个变量尚未被赋值。当我们尝试访问或使用一个未声明或未初始化的变量时,它会返回undefined。这个值在类型检测中表现为"undefined",且是undefined类型的唯一实例。当你尝试将其转换为字符串时,它会变成"undefined",而不是空字符串。与另一个...

为什么我javascript代码这样写,弹出来的提示框显示的是undefined
因为document.getElementsByTagName("div")返回的是一个数组,并不是单个元素对象,要在后面加[0]

相似回答