[JavaScript] 理由:Uncaught TypeError: Object [hoge] has no method replace
1 min read
Uncaught TypeError: Object [hoge] has no method 'replace'
状況
"."や"-"を取り除く関数を実行した際に発生
function trimSymbol(numStr) {
return numStr.replace(/./g, "").replace(/-/, "");
}
理由
Object に対して、String のreplace()
を使用した事が原因。
前述のコードだとnumStr
が String ではなく Object だった。
参考: String.prototype.replace() - JavaScript | MDN:
解決方法
String 型に変換するか、String 型以外は弾くような処理をする必要がある。
単純な解決方法は以下。
function trimSymbol(num) {
return String(num).replace(/./g, "").replace(/-/, "");
}
やはり万全を期して、型チェックをしてから確認を行うべき。