高分求js 问题答案- -解决了在加分- -

2024-10-29 22:28:30
推荐回答(6个)
回答1:

回答如下:

第一点:checkstr变量是在你的function Mycheck中定义的,所以,它不是全局变量,它只是这个方法中的局部变量而已。因为你这个变量是在方法中var(声明)的,而不是在方法外。所以,它只是一个局部变量。

第二点,就算你把这个方法在方法外部定义成了全局变量,也不会按照你所预想的那般,而是如图中所示才是程序的正确运行结果,因为+=符号你可以将其认为“接续”,比如下面的:

var ppp = 'a';
ppp += 'b';
ppp +='c';
alert(ppp);

结果应该是'abc',对吧?而不应该是:‘abac’吧?你理解下我这个例子,是不是与你的相同?你理解了这个,也就理解了你的程序了。

第三点,如果你想要实现你所预想的结果,那么可以把程序改成如下:

function Mycheck(){
if (document.form1.文章作者.value != ""){
var checkstr="获取内容如下:\n";
checkstr+="作者名称:"+document.form1.文章作者.value+"\n";}
if (document.form1.文章主题.value != ""){
var checkstr="获取内容如下:\n";
checkstr+="文章主题:"+document.form1.文章主题.value+"\n"; }
if (document.form1.文章内容.value != ""){
var checkstr="获取内容如下:\n";
checkstr+="文章内容:"+document.form1.文章内容.value+"\n"; }
if (document.form1.隐藏域.value != ""){
var checkstr="获取内容如下:\n";
checkstr+=document.form1.隐藏域.value; }
if (checkstr != ""){
var checkstr="获取内容如下:\n";
alert(checkstr);
return false;}
else return
return true;}

第四点,在你的编程思想中,你还没有熟练应用if/for/这样的程序语句,你把for和if给弄杂了。

————————————————————回答一下追问。

当然不是你所设想的那样。

if语句起到的作用仅仅是逻辑判断而已,它不会影响你的其它语句,包括这个“接续”,

因为程序是按照你编写的顺序从头到尾来执行的,除非一些特定的循环语句之外,根本无法执行两次或两次以上,所以,也不可能出现你所说的情况。

你的这段程序,会按部就班地从一开始执行,然后首先赋值给checkstr这个变量以“获取内容如下:\n”

而后,再执行几个判断语句,依次在原有的基础上,在后面加上“文章主题”啦、“文章内容”啦这些,而不会再去调用什么第一次所赋值的什么”获取内容如下:\n“;

回答2:

function Mycheck(){
var checkstr="获取内容如下:\n"; //checkstr 在 Mycheck() 里为全局参数

我想你是 += 理解错了,
比如 str="标题"
那么
str+="内容" 此时的str="标题内容"
str+="时间" 此时的str="标题内容时间" 而不是 str="标题内容标题时间"

+= 只是在该字符串的后面加上你要连接的字符串,并不是每次都要将最先定义的 str="标题" 都加一遍
*/

回答3:

执行结果是对的。
你应该这样写:
function Mycheck(){
var checkstr="获取内容如下:\n";
var allString="";
if (document.form1.文章作者.value != ""){
allString+=checkstr+"作者名称:"+document.form1.文章作者.value+"\n";}
if (document.form1.文章主题.value != ""){
allString+=checkstr+"文章主题:"+document.form1.文章主题.value+"\n"; }
if (document.form1.文章内容.value != ""){
allString+=checkstr+"文章内容:"+document.form1.文章内容.value+"\n"; }
if (document.form1.隐藏域.value != ""){
allString+=checkstr+document.form1.隐藏域.value; }
if (checkstr != ""){
alert(checkstr);
return false;}
else return
return true;}
+=是当前string加后面的string得到的结果。

回答4:

当然是你理解错了。
第一次负值:checkstr="获取内容如下:\n"
第二次负值:checkstr="获取内容如下:\n"+"作者名称:a\n"
第三次负值:checkstr="获取内容如下:\n"+"作者名称:a\n“+"文章主题:s\n“
第四次负值:checkstr="获取内容如下:\n"+"作者名称:a\n“+"文章主题:s\n“ +"文章内容:d\n"
最后一次负值:......
这才是正确的。

回答5:

出现的问题看图片,如果解决妥当,会加分,目前在费时间,在反复按“重试”看不懂的话,注销用户名重新登录系统,应该就没问题了,如果还是这样的错误

回答6:

你这是在重命名文件,覆盖安装?还是别的?你换一个路径安装试试?看不懂的话,注销用户名重新登录系统,应该就没问题了,如果还是这样的错误,那么这个安装包可能不干净。

发生错误是因为该文件你正在使用或者某进程正在使用,然后你却打算重命名,当然不可能。