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

functionMycheck(){varcheckstr="获取内容如下:\n";//问题一:我的理解这边的checkstr是全局变量!可对?if(document.f... function Mycheck(){
var checkstr="获取内容如下:\n"; //问题一:我的理解这边的checkstr是全局变量!可对?
if (document.form1.文章作者.value != ""){
checkstr+="作者名称:"+document.form1.文章作者.value+"\n";}
if (document.form1.文章主题.value != ""){
checkstr+="文章主题:"+document.form1.文章主题.value+"\n"; }
if (document.form1.文章内容.value != ""){
checkstr+="文章内容:"+document.form1.文章内容.value+"\n"; }
if (document.form1.隐藏域.value != ""){
checkstr+=document.form1.隐藏域.value; }
if (checkstr != ""){
alert(checkstr);
return false;}
else return
return true;}
上面是我的Js代码!
图片为运行结果- -
我的问题:
假设if表达式为真 ,然后根据”+="符号,那么Mycheck()函数输出的结果应该是:
获取内容如下:
作者名称:a
获取内容如下:
文章主题:s
获取内容如下:
文章内容:d
获取内容如下:
文章添加成功!
结果不应该是每行都有“获取内容如下”吗。为什么和图片运行的结果不一样?
我理解那么出错了 。那么这个例子该怎么理解- -
追问cmoooo 。可恶的度娘 不让追加提问- -
因为+=符号你可以将其认为“接续”( checkstr+=b不是等于checkstr【新的变量】=checkstr【原定义的变量也就是“获取如下内容”】+b吗???然后if都是独立的语句 ,所以我理解的是每执行一条语句就输出“获取。。”+b、这个结果。)
为什么理解为接续。有什么依据不?
新人勿喷 。希望耐心点- -
展开
 我来答
cmoooo
2011-09-24 · TA获得超过3587个赞
知道小有建树答主
回答量:741
采纳率:0%
帮助的人:657万
展开全部
回答如下:

第一点: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“;
lxs_lingting
2011-09-23 · TA获得超过990个赞
知道小有建树答主
回答量:899
采纳率:100%
帮助的人:507万
展开全部
function Mycheck(){
var checkstr="获取内容如下:\n"; //checkstr 在 Mycheck() 里为全局参数

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

+= 只是在该字符串的后面加上你要连接的字符串,并不是每次都要将最先定义的 str="标题" 都加一遍
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4b58662e56
2011-09-23 · TA获得超过163个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:141万
展开全部
执行结果是对的。
你应该这样写:
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得到的结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新乡阿永
2011-09-23 · TA获得超过267个赞
知道小有建树答主
回答量:399
采纳率:50%
帮助的人:124万
展开全部
当然是你理解错了。
第一次负值:checkstr="获取内容如下:\n"
第二次负值:checkstr="获取内容如下:\n"+"作者名称:a\n"
第三次负值:checkstr="获取内容如下:\n"+"作者名称:a\n“+"文章主题:s\n“
第四次负值:checkstr="获取内容如下:\n"+"作者名称:a\n“+"文章主题:s\n“ +"文章内容:d\n"
最后一次负值:......
这才是正确的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuncun03
2011-09-23 · 超过23用户采纳过TA的回答
知道答主
回答量:234
采纳率:0%
帮助的人:129万
展开全部
出现的问题看图片,如果解决妥当,会加分,目前在费时间,在反复按“重试”看不懂的话,注销用户名重新登录系统,应该就没问题了,如果还是这样的错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-09-23
展开全部
你这是在重命名文件,覆盖安装?还是别的?你换一个路径安装试试?看不懂的话,注销用户名重新登录系统,应该就没问题了,如果还是这样的错误,那么这个安装包可能不干净。

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式