情况一:var sjsxStr;
for (var i=0; i<iNbPrompts; i++)
{........
sjsxStr=arrLovTexts[i];
}
alert(sjsxStr);
if(sjsxStr.indexOf("天"))
{
.........
}运行结果:弹出提示“年季月天”,“if(sjsxStr.indexOf("天"))”行报错:Error:对象不支持此属性或方法情况二:var sjsxStr;
for (var i=0; i<iNbPrompts; i++)
{........
sjsxStr+=arrLovTexts[i]; //修改了这个地方 加个"+"
}
alert(sjsxStr);
if(sjsxStr.indexOf("天"))
{
.........
}运行结果:弹出提示“undefined年季月天”,程序正常了。
这是为什么呢?
for (var i=0; i<iNbPrompts; i++)
{........
sjsxStr=arrLovTexts[i];
}
alert(sjsxStr);
if(sjsxStr.indexOf("天"))
{
.........
}运行结果:弹出提示“年季月天”,“if(sjsxStr.indexOf("天"))”行报错:Error:对象不支持此属性或方法情况二:var sjsxStr;
for (var i=0; i<iNbPrompts; i++)
{........
sjsxStr+=arrLovTexts[i]; //修改了这个地方 加个"+"
}
alert(sjsxStr);
if(sjsxStr.indexOf("天"))
{
.........
}运行结果:弹出提示“undefined年季月天”,程序正常了。
这是为什么呢?
var d;
d=10; //数值型
d=d+" "; //通过跟一个空格相加变成字符串型obj.indexOf(参数) 函数对字符串应用比较好
var sjsxStr;
for (var i=0; i<iNbPrompts; i++)
{........
sjsxStr=arrLovTexts[i];
}
alert(sjsxStr);
if(sjsxStr.toString().indexOf("天"))
{
.........
}
<script type="text/javascript">
var a;//申明变量未初始化的时候默认为undefined
alert(a);
a += 'A';//undefined+'A';
alert(a);
</script>
改成:try: JScript codevar sjsxStr;
for (var i=0; i<iNbPrompts; i++)
{........
sjsxStr=arrLovTexts[i].toString();
}
alert(sjsxStr);
if(sjsxStr.indexOf("天"))
{
.........
} 可以了