<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