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

「パーフェクトJavaScript」メモ 4章 文、式、演算子

JavaScript

4章の前に。 

「配列はArrayクラスのインスタンスとして存在します」この一文を解読できない。

「パーフェクトJavaScript」メモ 1章,2章 - reopon.hatenablog

 昨日自分はこう言っていたが、3章でArrayクラスとはなんぞやということとインスタンスという語の用法がわかったので、まったく引っかかるところのないあたりまえ文章だとわかりました。成長、それは

で4章「文、式、演算子」。

文は文と式から構成され、式は式と演算子から構成される。

 こういう文章は整理に役立ちそうなのでメモっておく。

最小単位は識別子(変数名・関数名)、リテラル値(直接表記)、演算子(記号・予約語)

 額面だけ見ればわかりやすい。

なんだ「将来の予約語」って。2011年(第一刷発行年)以降に予約語になるということですか。 

リテラル表記」とは、コード上に書いた値が実行時にその値そのままの意味を持つ仕組みのこと

 そうなんだろうけどこうやって端的に説明してくれるといいですね

(この世に「いい本を書くぞ」「売れる本を書くぞ」という人が複数いて、それぞれがそれぞれいいと思う書き方で本を書いて出版するの、どうなんでしょうか。過渡期か)

(例えばJavaScriptに関する本をの「JavaScriptの本」というひとつの本のバリエーションとしてバージョン管理するとか……なんか言葉にしてみると異様に魅力がなくなっていた)

(再掲)if文の条件式に書いた式の評価結果はブーリアン型に型変換されるので注意

気をつけよう。

else の後にまた条件式が連なる場合 else if となるのは、ブロック文にしないでそのままコードを書いた様子であって、 それ自体が特別な記法というわけではない

 あー。そっかー。else と if の間にスペースあるかないか迷ったことあるけど、elseif という特別な節があるわけではないのでもう間違えませんね

ほか、繰り返し文の場合でも、中括弧で括らなくても成立しているようだ。ただ実行順でまずいことになるので明示的に中括弧で括る(ブロック文にする)と。

while文、実際に使ったことない。これどうなのやばいの

n = ~~(n / 10);  //~~演算は小数を整数にする(トリッキーな)技法

知らなんだ

「スコープ」の項をはやく読みたい。全然わかっていない。

for in 文で列挙されないプロパティ、たとえば length があるが、これはプロパティの属性に依っている。

そうだったのか。全然構わずfor in 文を使っていた。

break ラベル; や continue ラベル; でラベルのついた繰り返し文から抜けられる

便利だ

with文、存在意義がわからなかったが、非推奨らしいので覚えないぞ。

演算子をオペレータ、被演算数をオペランドと呼ぶ

用語「オペランド」が整理されました。ありがとうございます。

「オペレータ」「被演算数」はこの後ほとんど出てこないようです。 

||演算子、&&演算子三項演算子の3つの演算子のみ遅延評価をする

依然ruby推しの方から遅延評価の素晴らしさを説かれたが、現時点ではよくわかっていない。

++演算子と--演算子は破壊的演算子

前置と後置があり、前置は演算後の値が評価値となり、後置は演算前の値が評価値となる

 後置ばかり使うし、++と代入を一文で同時に行うことがほぼない気がする。紛らわしいからか

同値演算子、比較演算子の動作は一瞥してとりあえず先に進む。

論理演算子の評価値きもい。ブーリアン値じゃない値を吐くという点がきもい

ビット演算子、高校数学以外で使ったことない。

4章は以上。

一覧的、辞書的な章だったため内容的に突っ込む部分は少なかった。次章は変数とオブジェクトなのでいろいろありそう。