しまてく

学んだ技術を書きためるブログ

演算子かわいいよ演算子

数ある演算子の中でもいままであんま使ってなかった(けど有用な)演算子
勘違いをしていた演算子についてまとめます。

それは例えばこんなやつら


それぞれさっくりと。

同値演算子(===)

これは今までまったく使ったことがありませんでした(T T)
比較といえばもっぱら等値演算子(==)しか使ってなかったです。

型を意識してコーディングするときに必要な感じですかね?

instanceof演算子

使い方は

    • オブジェクト instanceof クラス

戻り値はBOOLが返ります。


いままでこのオブジェクトはこのクラスだ!とは厳格にチェックしてなかったです><
今度バリデータつくりながら練習しよかな。

論理積演算子(&&) / 論理和演算子(||)

二つまとめて。
これは激しく勘違いでした><

論理積論理和どちらも左から評価されるので、左の式によっては右側の式が評価されない
場合があるです!

例えばこんな感じ

//aがnullじゃない場合bはインクリメントされない
if( a == null ) && ( b++ > 10 ) {
//なにかの処理
}

//aがnullの場合bはインクリメントされない
if( a == null ) || ( b++ > 10 ) {
//なにかの処理
}

論理否定演算子の2重(!!)

JavaScriptが自動的に型変換することを応用したテクニック(?)

例えばこんな感じ

var hoge; // hoge は undefined
alert( hoge ); //undefined
alert( !hoge ); // true
alert( !!hoge ); // false


という事で、2重否定はオブジェクトをBOOLにした値が得られます。
いままで if( オブジェクト ) ってやってたけどこれ使ったほうが分かりやすいや

delete演算子

いままですごく謎だったのがJavaScriptのdelete演算子
c++では new と delete は対になるものなのに、JavaScriptはそうじゃない。
だってガーベジコレクションさんがいるもの、deleteなんて野蛮なことはするはずない!
って思ってました。


本当は、JavaScript の delete は new したものを削除するのではなく、
オブジェクトのプロパティを削除する演算子だったのです。

delete で消したプロパティは for/in でも見れなくなる(ガーベジさんが適当に破棄する)ので
使い方を覚えたらきっとおぶじぇくてぃぶにコーディングする時に役に立ちますね!


今日は勉強はここまで。

それはそうと今jQueryの勉強がてらプレゼンツール作ってます。
以前やった勉強会でもプレゼンツールつくるといいよーって言われたってのもあって
結構がんばって作ってます。


が!id:amachang のクオリティには程遠い><