使い慣れてない言語はだめだね、今日はまったバグはJavaScript
数値の配列を GM_setValue("hoge", data.join(",")); 見たいにして保存しておいて、data = GM_getValue("hoge","").split(","); で取り出して使ってたんだけどそこでvar hoge = data[1] + 1; とかして使ってたんだけど、これdata[1] = 1 だと hoge = "11" になるのねorz
数値を少しずつ増やすようなコードのつもりで1桁ずつ増えてた・・・型の無い言語はこういうことがおきるのか、なんか防ぐ方法あるん?気をつけるしかないのか?
型がないわけじゃなくて、型が見えないってイメージした方が分かりやすいかも。
返信削除var data = "1,1,1".split(",");
は文字列を分割しているから、あくまで文字列の配列になるというわけ。
parseInt(data[1]) + 1 なら 2 になる。
慣れてくると、見えない型を意識しながら書けるようになるよ。
ちょっと前に似たようなミスをして理解はしてたんだけど、ついやらかしてしまった感じなんだよねぇ
返信削除普段使ってる言語ならエラーでとまってすぐ気づくのにこの言語はとまらないので・・・
文字列連結に関してはPerlみたいに . 演算子でつなぐとか別のにしてくれればよかったのになぁ