2017/03/09

[js]nullは0じゃない

今日、ちょろっとJavaScriptを触っていた。
もちろん、詳しくない。
最近触っているというか、触らざるを得ないからやっているのだが、とてもつらい。。。

 

今日は、グローバル変数と呼んで良いのか? varを付けずにアクセスする変数を作りたいと思った。
とにかくカウントアップする変数を用意したかったのだ。

ただ、どこから呼ばれるかはっきりしないので、初期化するタイミングに悩んでいた。
そういえば、変数に代入されてないことの確認で、

if (!value) {
  ...
}

みたいに書けたと思うから、初期値は0ってことじゃなかろうか。

ということで、こう書いた。

count++;

 

はい、動きませんでした。。。
たぶん、例外が発行されたのだと思う。
meteorを使っていたから、meteorが例外を出していたのだけど、たぶんそうだろう。

デバッグ用だったから、onRendered(meteorのしくみね)で

count = 0;

とすると、動いた。

なるほど、0じゃなくて、nullなんだ。
そして、nullだからインクリメントなんてしたらいかんのだな。

 

普通のJavaScriptだったら静的解析ツールなんかに掛けることもできそうだけど、meteorだと文法がちょっと違うためか、うまくいかなかった。
C/C++を主に使っているので、コンパイルエラーが出なければそこそこ動くだろう、と思ってしまうのだが、そうじゃない世界に放り込まれると、けっこうつらいですわ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。