1. 程式人生 > >JS拼接時,function傳遞ID(UUID)引數值不準確問題

JS拼接時,function傳遞ID(UUID)引數值不準確問題

問題描述:此處我們傳遞的引數ID是Oracle資料裡面資料的ID,我使用的是MybatisPlus中的IdWorker.getId()這樣的

需要傳遞資料ID,類似於:870191925104693248,859678698633596928這樣的資料

是通過拼接傳遞的。

方式一:(會有問題),引數根據平常的用法加了單引號,紅色部分

return "<ahref='#' onclick=toDetail(" + row.id + " ''>" + data + "</a>";

但是會報錯:

SyntaxError:expected expression, got '}',是因為單引號的原因。

方式二:(會有問題),引數沒有使用單引號

return "<ahref='#' onclick=’toDetail(" + row.id + ")'>"+ data + "</a>";

這時候不會報錯,但是傳遞的引數有問題,870191925104693248 會變成870191925104693300,差別就在於尾數248變成了300,直接入了一位。但是如果剛好尾數是200這樣的整數則不會改變。

方式三(正確方式),拼接的時候使用雙引號巢狀單引號,引數還是新增單引號

return "<ahref='#' onclick=\"toDetail(' " + row.id + " ')\" '>"+ data + "</a>";

這樣傳遞的引數是準確的。

據網上網友介紹,同樣這個問題還會出現在傳遞UUID中。