JavaScript ではドット「.」には 2 つの意味があります。
意味 1. 2.5 など、算術の小数点 (浮動小数点数) を表します。
セマンティクス 2. [].push(2) などのオブジェクトの属性とメソッドを取得します。
難解な点はほとんどありませんが、次の質問が興味深いです。
次のようにコードをコピーします。
// このコード行はどのように実行されるのでしょうか?
1.toString();
Firebugでは以下のように
ここのドットは上記のセマンティクス 1 を表しているため、ドットの後には数値が続く必要があり、レポート構文は間違っています。
解決策は非常に簡単で、かっこを追加するなどです。
次のようにコードをコピーします。
(1).toString();
このように書くこともできますが、理解するのが難しくなります
次のようにコードをコピーします。
1..toString();
ブラウザで実行できる理由は、各ブラウザの JS エンジンが「1..toString()」を「1.0.toString()」として理解するためです。ここでの最初のドットはセマンティック 1、2 番目のドットはセマンティック 2 です。
さらに奇妙な書き方もありますが、エラーは報告されません。
次のようにコードをコピーします。
1.toString(); // ピリオドの前にスペースがあることに注意してください。
明らかに、ここでのドットはセマンティック 2 です。つまり、JS エンジンはドット演算子の前のスペースを無視します。実際、その前後のスペースは無視されます。次のように
次のようにコードをコピーします。
1. toString(); // ピリオドの前後にスペースがあります。
1. toString(); // ピリオドの前後にスペースが 2 つあります。
1.toString(); // ピリオドの前にタブがあります
1. toString(); // ドットの前後にタブがあります。
JS エンジンはスペースを無視するだけでなく、タブも無視します。