<script>
1..z
</script>
這不給出語法或運行時錯誤。看起來像數字和變量名稱可以是任何其他(123..qwerty
)。我想知道這個聲明是什麼意思?JavaScript中的`1..something`是什麼意思?
<script>
1..z
</script>
這不給出語法或運行時錯誤。看起來像數字和變量名稱可以是任何其他(123..qwerty
)。我想知道這個聲明是什麼意思?JavaScript中的`1..something`是什麼意思?
是不一個範圍內,1..z
表達只會返回undefined
。
爲什麼?
第一點結束的Numeric Literal的表示,給你一個Number
原始:
var n = 1.;
數字文字的語法是這樣表示:
DecimalIntegerLiteral . DecimalDigitsopt ExponentPartopt
正如你所看到的點後的DecimalDigits部分爲可選(opt後綴)。
第二點是屬性訪問器,它只會設法得到z
屬性,它是undefined
,因爲它不Number.prototype
對象上存在:
1..z; // undefined
1..toString(); // "1"
就等於訪問屬性與支架符號屬性訪問:
1['z']; // or
1['toString']();
結合這些:
alert(1.foo); // --> parse error
alert(1.4.foo); // --> undefined - number 1.4 doesn't have the property foo
alert(1.); // --> 1 (?)
這樣的結論:
alert(1..foo); // --> undefined
感謝化解誤傳 – spender 2010-02-19 23:11:16
真棒答案。 – Nicole 2010-02-19 23:11:17
謝謝!非常好的解釋。 – Roman 2010-02-19 23:15:12