読者です 読者をやめる 読者になる 読者になる

nazolabo

なぞさんのブログ

JavaScript入門

開発 JavaScript

JavaScript:void(function(){ var x=1; var sa=new Array('わ','ん'); document.body.innerHTML = document.body.innerHTML.replace(/[あ-んア-ンア-ン]/g, function(){ return sa[x=x^1] } ); })()

JavaScriptさっぱりわかんないから、replaceの置換先に関数を作ってる(function(){ return sa[x=x^1] })のが謎だったんだけど、関数じゃなく単に「return sa[x=x^1]」としたらxが変わらなくなった。
関数にしておくと置換する度にx=x^1が呼ばれるって寸法?ああでも関数オブジェクトって考えると便利か。
ちなみにx=x^1よりx=1-xのほうが好き。xorはあくまでビット反転だけど、x=1-xだと、x=N-xにすると、0orNの値にフリップできる。いや0or1の結果に乗算すればいいだけと言われると!