PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Ajax
[问题] 关于for循环的小问题
楼主:
purestone
(天空之子)
2018-09-03 21:20:05
在上课学循环的部分,有个地方不太懂
请问如果有个循环内容是
var i=0;i<tweets.length;i++){
tweetString = tweetString +"<p>"+tweets[i]+"</p>;
}
循环会先执行tweetString = tweetString,第二次才会跑完全句是吗?
我会这么问是因在定义tweetString时如果写var tweetString; 会跑出undefined的结果
作者:
CloudyWing
(孤单ㄉ翼)
2018-09-04 00:59:00
var tweetString(宣告)=tweetString(undefined) + ...tweetString才循环外宣告,并给初始值空字串
楼主:
purestone
(天空之子)
2018-09-04 07:56:00
谢谢,但还是不懂,"tweetString才循环外宣告"是什么意思?不跑循环直接传回tweetString的值?这么问好了,为什么var tweetString;和var tweetString = "";会让循环执行结果不同?
作者:
mrbigmouth
(大嘴先生)
2018-09-04 12:18:00
var tweetString; 的时候 tweetString的值会是undefined undefined加字串时会自动转为"undefined"
楼主:
purestone
(天空之子)
2018-09-04 17:20:00
undefined加了字串就不是undefined才对吧加了字串等于有了定义才对吧
作者:
InfinityGate
(小鸟)
2018-09-04 18:36:00
JS是动态型别语言,这叫coercionundefined本身就是一种型别,是不能跟字串相加的相加的时候JS会把undefined转"undefined"字串去运算
楼主:
purestone
(天空之子)
2018-09-04 19:36:00
照这逻辑应该是一直跑出undefined的循环才是啊,第一次跑出undefined,第二次以后跑出字串,这是怎么回事?
作者:
InfinityGate
(小鸟)
2018-09-04 20:06:00
你要不要把循环每次运算完的结果印出来看看等号是把右边运算完assign给左边循环跑第一次之后tweetString就已经是字串了undefined+字串的结果不是undefined.....JS把undefined强制转型成 "undefined"才去做相加既然是字串加字串结果当然是字串建议你去查 javascript coercion你贴完整的code上来吧,这样看不懂至少我没有跑出你这种结果
楼主:
purestone
(天空之子)
2018-09-04 22:20:00
懂了,谢谢,仔细想想各位的回复+google终于懂了谢谢!!!
作者:
xdraculax
(首席怪叔叔)
2018-09-05 07:51:00
就只是一直没看清 "undefined"(字串)跟undefined(型别)不同 XD
作者: acer1832a (Mike)
2018-09-05 09:01:00
这就是一直学不好JavaScript的地方,太神奇了XD
继续阅读
[问题] 使用 Websocket 连线 PTT 如何使用 utf-8
CodingMan
[问题] js的读取顺序
oCrazyDucko
[问题] 可画X轴多层的Chart元件
girl5566
[问题] google map api 用时间排序
apalamplm
[问题] facebook 公开粉丝页面评论抓取
thrco
[工具] 创建与编辑PDF (hummus-recipe)
little78926
[问题] NodeJS上修改程式无反应
z604005
Re: [问题] 新手请教括号有无的差别
peanut97
[问题] 新手请教括号有无的差别
liquidbox
[问题] JavaScript 函式的基础问题
oCrazyDucko
Links
booklink
Contact Us: admin [ a t ] ucptt.com