问题标签 [ecma]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2673 浏览

javascript - 如何在 Intl.NumberFormat 中获得正数的前导“+”?

我正在使用 Intl.NumberFormat 将数字类型转换为 Angular2 中 typescript/javascript 中的格式化字符串。我想要一个本机解决方案,这是理想的,但我需要一个前导加号来包含正数。

如果Intl.NumberFormat无法做到这一点,我还能如何原生地做到这一点?

0 投票
1 回答
221 浏览

reactjs - ES7 是 ECMAScript2016 的另一个名称吗?如何在 React 中编写它?

有人可以帮我理解 ECMAScript 的版本吗?我需要使用 ES7 制作一个 React JS 应用程序。现在在互联网上搜索有很多混乱。有一个 ES5 版本,然后是 EcmaScript2015,它与 ES6 相同(我想)。那么 ES7 是 ECMAScript2016 的另一个名称吗?
到处搜索我只发现 react 可以用 ES5(createClass) 和 ES6(class) 编写。ES7 中是否存在语法差异?

0 投票
1 回答
85 浏览

json - ECMA-404 中使用什么类型的图表?

我在 JSON 规范中找到了这个数字

图表

http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf

  1. 该图表的类型名称是什么?
  2. 我可以使用此图表指定任何编程语言吗?
0 投票
2 回答
1504 浏览

javascript - 使 Object.freeze() 静默失败的原因是什么?

为什么在突变时Object.freeze(obj)默默地失败?obj

当不可变对象发生变异时,抛出比错误更合乎逻辑吗?然后,如果他想将 a 包裹try catch在他的Object.freeze(obj). 类似于我们需要如何包装JSON.parse()try catch避免空字符串或格式错误的 JSON 的错误。

我希望社区可以发表评论。

在几个答案和评论后编辑:

据了解,Object.frozen()在严格模式下会抛出错误。但是为什么该方法必须在非严格模式下静默失败呢?

0 投票
1 回答
536 浏览

javascript - 如何为特定节点编写条件 xpath 选择?

所以我在 chrome、autopagerizer 上添加了一个用户脚本。

目前我正在使用

我想要一个条件参数,当上面的代码没有解决任何问题时,它会选择

反而。我只希望在这种情况下选择 h3。我不知道如何在 xpath 中编写这个,我查找了其他相关问题,但他们没有解决这个问题。如果我不能用 xpath 解决这个问题,我将如何用 javascript 解决这个问题?我在铬上使用油脂猴。

0 投票
2 回答
101 浏览

javascript - 术语语言方言和语言实现之间有区别吗?

例如:我读过 JavaScript 是 ECMAScript(标准)的一种方言。我还看到它作为ECMAScript的实现被提及。这主要是语义上的差异吗?换句话说,方言实现这两个术语可以互换使用。

编辑:这个问题源于ECMAScript Wikipedia 页面,该页面将 JavaScript 与 V8 一起提到为“主要实现”(页面右栏),以及之前的一个问题,此处提到 JS 作为一种方言。

0 投票
2 回答
2719 浏览

javascript - 为什么 `(foo) = "bar"` 在 JavaScript 中是合法的?

在 Node.js 的 REPL(也在 SpiderMonkey 中测试过)中,序列

是有效的,foo随后等于而"bar"不是null

这似乎违反直觉,因为有人会认为括号至少会取消引用bar并在赋值中抛出Invalid left-hand side`

可以理解的是,当你做任何有趣的事情时,它确实会以上述方式失败。

根据有关 LeftHandExpressions 的 ECMA-262(据我所知),没有有效的非终结符会导致括号被接受。

有什么我没看到的吗?

0 投票
1 回答
21 浏览

javascript - JS 原生 NextEventLoop

鉴于很久以前异步编程在 Javascript 中已经司空见惯,对我来说,对 window.setTimeout 的调用次数似乎非常骇人听闻。我了解 VM 的工作原理以及事件循环的工作原理。关键是,有谁知道为什么 ecma 作者不选择添加某种“nextEventLoop”或“defer”调用来强制稍后执行逻辑块的原因?

每次看到 setTimeout(0) 时我都会畏缩,因为从来没有作者打算将超时设置为零。那么,为什么要继续强迫我们进行这种黑客攻击呢?

或者,有没有更好的选择?

0 投票
2 回答
1745 浏览

javascript - 所有 JavaScript“未捕获的语法错误:无效的正则表达式”消息的列表

是否在任何地方维护了所有可能的 JavaScript RegEx 语法冲突错误消息的完整列表?

例如,一些可能的错误消息是:

0 投票
4 回答
13394 浏览

javascript - 何时不在 javascript 中使用“严格模式”?

我找到了这篇文章- “使用严格”在 JavaScript 中做了什么,其背后的原因是什么?

我在这里的理解是我应该use strict 永远

但我想知道,如果这是真的,那么使用“严格模式”总是更好,那么它甚至不会存在,因为这将是一种默认行为。

于是我搜索了ECMAScript 6th edition的定义,发现很多情况下都是默认的。

根据有关严格模式的官方文档

可以使用不受限制或严格模式的语法和语义来处理 ECMAScript 脚本语法单元。该代码在以下情况下被解释为严格模式代码:

如果全局代码以包含使用严格指令的指令序言开头(参见14.1.1),则它是严格模式代码。

模块代码始终是严格模式代码。

ClassDeclaration或 ClassExpression 的所有部分都是严格模式代码。

如果E val 代码以包含 Use Strict 指令的 Directive Prologue 开头,或者如果对 eval 的调用是包含在严格模式代码中的直接 eval(参见 12.3.4.1),则它是严格模式代码。

如果相关的 FunctionDeclaration、FunctionExpression、GeneratorDeclaration、GeneratorExpression、MethodDefinition 或ArrowFunction包含在严格模式代码中,或者如果生成函数的 [[ECMAScriptCode]] 内部槽值的代码以指令开头,则函数代码是严格模式代码包含使用严格指令的序言。

如果最后一个参数是一个字符串,并且在处理时是一个以包含使用严格指令的指令序言开头的函数体,则作为内置函数和生成器构造函数的参数提供的函数代码是严格模式代码。

非严格模式代码的 ECMAScript 代码称为非严格 代码。

那么,什么时候使用非严格代码是一个不错的选择呢?

提前致谢。