为什么alert(str[0])打印出来的是undefined

molaifeng
领域专家: 前端开发技术领域
2012-10-12 05:47:04

function test(pP1) {
alert(pP1[0]); //在本地机正常显示,弹出1
}
test('103');



上面的代码放入服务器所在的文件里,运行弹出的确实undefined,为什么,抓狂了
...全文
363 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
molaifeng 2012-10-12
  • 打赏
  • 举报
回复
感谢朋友们的回答,应该是这样的!!!
一起混吧 2012-10-12
  • 打赏
  • 举报
回复
alert(pP1.charAt(0)); //针对字符串这样写就可以了

如果是数组就要改写了,要判断下类型。
泡泡鱼_ 2012-10-12
  • 打赏
  • 举报
回复
别纠结了喔。实在不行就强制转换一下嘛

function test(pP1) {
if(typeof(pP1)=='string'){pP1=pP1.split('')}
alert(pP1[0]);
}
molaifeng 2012-10-12
  • 打赏
  • 举报
回复
是啊,我回家了,测试也是正常的,下午在公司就是调不通,在本地的html里能够运行,通样的代码放入服务器上竟然有问题,几个浏览器都测试了,都是undefined

 
function test(pP1) {
alert(pP1); //正常,我都蒙了,这个本来就正常
alert(pP1[0]); //在服务器的代码里弹出undefined,可这里为什么就不正确呢,本来以为很简单的一个case,竟然纠结在这里,想不通
}
test('103');


求大牛啊!!!内牛满面!!!
泡泡鱼_ 2012-10-12
  • 打赏
  • 举报
回复
我在IE,FF,Chrome上均正常
molaifeng 2012-10-12
  • 打赏
  • 举报
回复
上面的代码我在ie和火狐上弹出的都是undefined
泡泡鱼_ 2012-10-12
  • 打赏
  • 举报
回复
呃,不会吧。应该是可以弹出1才对,我刚测试过的
kukaco 2012-10-12
  • 打赏
  • 举报
回复
JavaScript的代码运行与是在本地还是在服务器是没关系的,只跟你调试的浏览器有关。
你这个写法非常规,能弹出1已经JavaScript的变态之处了~!

给你加点东西:

function test(pP1) {
alert(pP1[0]); //在本地机正常显示,弹出1
}
test('103'.split(''));

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧