看板 Ajax 關於我們 聯絡資訊
最近發現一個奇怪的問題 我用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
emn178:php false轉字串時是空字串,確定data顯示出來是"false"? 03/21 11:24
BBSealion:確實是空字串,OK我了解了,所以還是強自轉字串 03/22 22:04
BBSealion:只是用空字串來表達js中 false的其中一種表示法 03/22 22:04