[問題] 用ajax從php傳資料回js時,false的定義

看板Ajax作者 (海獅)時間12年前 (2013/03/21 11:00), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/1
最近發現一個奇怪的問題 我用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

03/21 11:24, , 1F
php false轉字串時是空字串,確定data顯示出來是"false"?
03/21 11:24, 1F

03/22 22:04, , 2F
確實是空字串,OK我了解了,所以還是強自轉字串
03/22 22:04, 2F

03/22 22:04, , 3F
只是用空字串來表達js中 false的其中一種表示法
03/22 22:04, 3F
文章代碼(AID): #1HIdVUhw (Ajax)
文章代碼(AID): #1HIdVUhw (Ajax)