人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Javascript で、
1.1.1.toString() #=> 1
なのですが
1.toString() #=> シンタックスエラー
なぜ?

Number.prototype.fooo = function(){ }
1.fooo()

みたいなことをやりたいのですが。不可能なのでしょうか。

●質問者: takuya
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● sasada

自宅で環境がないので未確認ですが、ピリオド(.)が小数点だと解釈されているのでは。
Number.prototype.fooo = function(){ /* hogehohe */ }
(1).fooo()
としてみては如何でしょうか。


takuyaさんのコメント
なるほど(1) ですね。(1 )だけで良いんですね。便利です。 (1).loop( function () {} )としてメソッド作りたいと思います。 素早い回答ありがとうございます。

2 ● rsc

IEでやってみましたが、次のようになりました。(^_^;

document.write(1.1.1.toString()); // #=> 非表示(真っ白)

document.write((1.1.1).toString()); // #=> 非表示(真っ白)

document.write(1.1.toString()); // #=> 1.1

document.write((1.1).toString()); // #=> 1.1

document.write(1.toString()); // #=> 非表示(真っ白)

document.write((1).toString()); // #=> 1

ちなみに、Chromeでは、IEで非表示のところは、やっぱり、「SyntaxError: Unexpected number」で、エラーにならなかったところは、コンソールでは、「undefined」で、「1.1」と「1」を表示しました。
「1.1」に関しては、「1.1」と「(1.1)」のどちらでも、IEとChromeのどちらでも、表示されました。(^_^;


takuyaさんのコメント
すいません、質問の例が間違えてました。 1.1.toString() //=> "1.1" 1.toString() //=> Syntax Error です。 IEだと、SyntaxErrorにならず、表示真っ白になるんですね。おもしろいです。 素早い回答ありがとうございます。

3 ● lang_and_engine
ベストアンサー

それはECMAScriptの仕様で,よくある話なんですよ。


JavaScript Garden
http://bonsaiden.github.io/JavaScript-Garden/ja/#object.general


takuyaさんのコメント
1..toString() で出来るんですね!勉強になります。 ぱっと見、記述ミスにしか見えないですけど、 1..toString()は、(1).toString() に比べて記述が楽ですね。 積極的に使ってみようと思います。 また、すごく勉強になる参考URLを貼っていただいて、助かりました。ありがとうございます。

質問者から

質問に書いた、例が間違えてました。
1.1.toString() //=> 1.1
1.toString() //=> syntax Error


です。


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ