[JavaScript] 理由:Uncaught TypeError: Object [hoge] has no method ‘replace’

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(/-/, "");
}

やはり万全を期して、型チェックをしてから確認を行うべき。