ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript_javascript スキルのドット「.」の曖昧さを解析する

JavaScript_javascript スキルのドット「.」の曖昧さを解析する

WBOY
WBOYオリジナル
2016-05-16 17:11:161279ブラウズ

JavaScript ではドット「.」には 2 つの意味があります

セマンティクス 1. 2.5

など、算術の小数点 (浮動小数点数) を表します。

セマンティクス 2. [].push(2)

などのオブジェクトの属性とメソッドを取得します。

難解な点はほとんどありませんが、次の質問は興味深いです。

コードをコピー コードは次のとおりです:

// このコード行はどのようになりますか実行されました
1 .toString();

Firebug は次のとおりです

ここのドットは上記のセマンティクス 1 を表しているため、ドットの後に数字を続ける必要があります。これは toString であり、レポート構文は間違っています。

解決策は、かっこを追加するなど非常に簡単です。

コードをコピーします コードは次のとおりです:

(1).toString();

このように書くこともできますが、わかりにくくなります
コードをコピー コードは次のとおりです:

1..toString();

で実行できる理由これは、各ブラウザの JS エンジンが「1..toString()」を置くと「1.0.toString()」として解釈されるためです。ここでの最初のドットはセマンティック 1、2 番目のドットはセマンティック 2 です。

もっと奇妙な書き方がありますが、エラーは報告されません

コードをコピーします コードは次のとおりです:

1 .toString(); // ドット記号の前にスペースがあることに注意してください

明らかに、ここでのドット記号はセマンティック 2、つまり JS です。実際、エンジンはドット演算子の前のスペースを無視します。先頭と末尾のスペースは無視されます。次のように
コードをコピーします コードは次のとおりです。

1 。 // ドットの前後にスペースがあります
1 . toString() // ドットの前後に 2 つのスペースがあります
1 .toString(); // ドットの前にタブがあります
1 . toString(); / / ピリオドの前後にタブがあります

JS エンジンはスペースだけでなくタブも無視します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。