问题标签 [ecmascript-3]
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.
javascript - 由表达式文字制作的正则表达式是否共享一个实例?
下面的代码片段(来自 Crockford 的Javascript: The Good Parts)演示了由正则表达式字面量生成的 RegExp 对象共享一个实例:
问题:这与任何其他文字一样吗?我尝试修改上面的代码以使用 string "string"
,但出现了一堆错误。
javascript - TSC:--target ES3 兼容性标志有什么作用?
我安装了 typescript npm 包:
跑了
哪里doodle.ts
有:
它在 output 中回显了相同的内容doodle.js
。
如何在输出中配置它,我得到:
标志不-t ES3
应该照顾这些兼容性方面吗?
javascript - arguments.slice() 应该在 ES5 中工作吗?
我正在观看Crockford on Javascript - Act III: Function the Ultimate大约 41 分 26 秒。他屏幕上的代码使用arguments.slice()
方式对我来说会导致错误。
他是这样解释的:
我将首先得到一个参数数组,除了第一个,因为第一个是一个函数,我不需要那个。在这种情况下,我假设我在 ES5 上,所以我没有做可怕的
Array.prototype.apply()
把戏。
问题是运行arguments.slice()
会导致这个错误:
Uncaught TypeError: arguments.slice is not a function
我正在测试肯定有 ES5 的现代浏览器!我可以让代码工作的唯一方法是如果我使用一些“可怕的”技巧,(正如他所说的那样)例如Array.prototype.slice.apply(arguments, [1])
或[].slice.call(arguments, 1);
.
他只是误会了吗?他的幻灯片有错字吗?为什么arguments.slice()
在我的 ES5 浏览器中不起作用?
javascript - 在 ES5 之前有没有办法在没有原型的情况下创建对象?
在 ES5 之前有没有办法在没有原型的情况下创建对象?
即类似Object.create(null)
(ES5)
我认为这样的事情可能会奏效,但最终语句意外返回true
:
Object.getPrototypeOf
是ES5。我在这里用它来展示。
visual-studio - 使用 TypeScript 定位不同的 Javascript 版本
TypeScript 可以全局定位不同版本的 Javascript - 你可以在转译 ES3、ES5 或 ES6 之间切换。
我们必须支持 IE,所以 ES3 是我们的最低公分母。
然而,优秀的浏览器(如 Chrome)已经支持 ES6,并且能够通过优化运行明显更小的 ES6 代码。
因此,我想从同一个 TypeScript 源中将 ES3 提供给 IE,将 ES6 提供给 Chrome。
有没有办法让 TypeScript 转译多个 JS 文件(可能是
*.es3
和*.es6
或类似的东西),以便我们可以选择要服务的版本?(理想情况下在 VS 2015 中)或者在 C# 中,我可以访问 TypeScript 转译器以在运行时完成该步骤吗?
lua - 是否有将 Lua 标签转换为 ECMAScript3 的解决方案?
我正在重新构建一个 Lua 到 ES3 的转译器(一个将 Lua 转换为跨浏览器 JavaScript 的工具)。在我开始将我的想法花在这个转译器上之前,我想问一下是否可以将 Lua 标签转换为 ECMAScript 3。例如:
我的第一个想法是将每个语句体分成几部分,例如,当有标签时,它的下一个语句必须作为整个下一部分存储:
等等。每个具有主体(或程序块)的语句都会获得这样的部分列表。标签的每个部分都应将其名称存储在某个地方(例如,在其自己的部分对象中,在属性内)。
每个部分都将是一个函数,或者将在其自身上存储一个函数,以便相对于其他部分按顺序执行。
goto 语句将查找其特定标签以运行其语句并调用 ES return 语句以停止当前语句的执行。
以这种方式分离正文语句的局限性在于访问不同部分中定义的变量和函数......那么,有没有一个想法或答案?如果将它们转换为 ECMAScript,就不可能有稳定的标签吗?
javascript - 为什么在 ES5 中将变量对象更改为词法环境?
ES5 将变量对象(VO) 更改为词法环境。既然 VO 作为感知已经非常明显,那么这种变化的动机是什么?