javascript - `1..something` 在 JavaScript 中是什么意思?

标签 javascript

<script>
1..z
</script>

这不会给出语法或运行时错误。看起来数字和变量名可以是任何其他名称 (123..qwerty)。我想知道这句话是什么意思?

最佳答案

不是范围,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'](); 

关于javascript - `1..something` 在 JavaScript 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2300197/

相关文章:

用于验证 12 小时时间的 JavaScript 正则表达式

javascript - .then 的 Promise.all 结果永远不会执行

javascript - Hasura Graphql 查询运算符的神秘定义

javascript - 具有日期范围的数据表过滤器

javascript - 使用 Javascript、CSS 或 ImageMagick 的万花筒效果?

javascript - React Native 中的持久状态 : setting state from AsyncStorage doesn't update component

javascript - 当另一个用户更新 mysql 中的表时,我可以在不使用 setInterval() 函数的情况下触发 javascript 函数吗

javascript - MooTools 的 Function.prototype.overloadSetter() 有什么作用?

javascript - 如何在 javascript 中解析 JSON 数组,该数组中的每个对象都有单引号?

javascript - 使用 globalCompositeOperation 创建渐变 mask