作者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