文字列、ブール値、および数値を定義する場合、プリミティブオブジェクトはオブジェクトよりも正確でしょうか?
ここでは、数字がオブジェクトではないと言っているのではなく、あいまいに見えることを指摘していることに注意してください。これは、JavaScriptの初心者を混乱させるようなものです。
区別はほとんど学術的ですが、あいまいに見える場合が1つあります。リテラルが数値を表すように見える場合を除いて、リテラルはプリミティブオブジェクトを表します。メソッドをリテラル整数*シンボルに直接適用することはできません。
1.toString();
SyntaxError: identifier starts immediately after numeric literal
…しかし、あなたは数字の方法を適用することができます:
Number(1).toString();
'1'
…そして数字を含む名前は数字です:
x = 4;
x.toString();
'4'
これは実際には構文解析の問題だと思いますが、パーサーが1
「abc」が文字列であると判断できるほど簡単に数値であると判断できない理由はよくわかりません。.
シンボルの意味のあいまいさに関係していると思います。(小数点ですか、それともメソッド演算子ですか?)
*JavaScriptには実際には整数がありません。完全にで構成されるシンボルを意味します[0-9]+
。