作者BBSealion (海狮)
看板Ajax
标题[问题] 用ajax从php传资料回js时,false的定义
时间Thu Mar 21 11:00:43 2013
最近发现一个奇怪的问题
我用AJAX从php传资料回js
就是在php端echo,在js端用
var data = xhr.responseText 接收
发生一个奇怪的状况
我如果传int 0回来
js接到的会变成string: "0"
typeof data 为string
根据js定义字串非空就是true
所以if(data){...} 他会当成true而跑进判断式
但如果我传boolen false回来
他的typeof data 依然是 string
但是if(data){...}
他却会当成false而不会进判断式里面了
但理论上js如果放string "false" 应该是会被当成true的
我有点搞不懂他的逻辑了...
想请教一下高手们这边设计的逻辑?
为什麽他会强制把0转成string?
为什麽type是string的false又可以当boolen false用?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.61.45
1F:→ emn178:php false转字串时是空字串,确定data显示出来是"false"? 03/21 11:24
2F:→ BBSealion:确实是空字串,OK我了解了,所以还是强自转字串 03/22 22:04
3F:→ BBSealion:只是用空字串来表达js中 false的其中一种表示法 03/22 22:04