问题标签 [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 - 在奇怪且罕见的基于 es3 的环境中获取对全局对象的引用
首先要做的事情是:目标/主机环境同时非常罕见和奇怪,所以如果这一切都没有结束,我可以。请提前原谅我您可能花在上面的时间。
一个情节:我和我的朋友为一些 win32 应用程序提出了一个“插件”(JS 代码)来处理以前记录的来自汽车喷油器的模拟信号,以分析它并找到(最佳)驾驶汽车的方法(最大速度(实际与库存)、最大 RPM、最大油耗、最佳消耗的 RPM 等)。我是几年前写的(基于我当时的知识/经验。意味着脚本是在大约 10 年前的技术堆栈的帮助下编写的)。由于环境的原因,我以自己的记录器、分析器、i18n 引擎等实现结束。
平台:它是一个 win32 应用程序(相当老,~MSWinXP),它能够使用插件处理记录的数据。我很确定它不支持除 es3 之外的任何东西(不,'map'、'reduce'、'forEach' 等)。每个有兴趣玩它的人都会有一个链接。
我的目标:JS -> TS,grunt -> webpack,构建包含顺序 -> ES 模块(导入/导出),自制模块 -> NPM 替代品等等。
实际任务:我正在尝试导入 core-js 包以填充遗漏的内容并面临https://github.com/zloirock/core-js/blob/master/packages/core-js/internals/global.js的问题无法正确检测/查找全局对象。
该文件将我带到下一个链接:
- https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
- 如何在 JavaScript 中获取全局对象?
- 在严格模式下获取对未知环境中全局对象的引用
- 是否有与环境无关的方法来检测 Javascript 主机对象?
我相信我从这些链接中尝试了所有建议(https://gist.github.com/ZuBB/017c40f4d68396428458660e6604f765),但这无济于事 - https://drive.google.com/open?id=1XdQpryaOsJ2CFdF0Qh5c1u6GvPkJAIAl。
我将不胜感激任何想法如何获取对全局对象的引用
带有平台相关链接的要点:https ://gist.github.com/ZuBB/7e3e76c7629518671e209148fc0d2b6a
javascript - 对数组中的项目进行分组和过滤
我有一个名为 的数组items
,这是数组内的数据样本:
我想对我的数组中的项目进行分组和过滤。我发现我可以创建第二个数组并将所有符合我的条件的项目推送到第二个数组中,但不确定如何实现这一点。
以下是分组和过滤的标准:
- Group by
id
andkey
这样所有具有相同id
and的记录key
都被分组在一起,并且可以在下一步中进行过滤。所以在这里我可以动态创建数组,它们看起来像这样:
阵列 1:
阵列 2:
阵列 3:
阵列 4:
阵列 5:
- 上面的数组应该被过滤
status
:如果在一个数组中我有状态failed
或者completed
我不想再考虑这个数组。符合条件的数组中的数据可以推送到我的最终数组,我只需要id
和key
归档,我不需要查看不同的状态:
最终数组:
到目前为止,我已经尝试过了,但我无法得到想要的结果:
任何帮助,将不胜感激。
vbscript - 使用 htmlfile COM 对象访问 WSH JScript 中对象的 .getOwnPropertyDescriptor() 方法
在这个问题的评论中,我被告知该.getOwnPropertyDescriptor()
方法
ES3 中不支持...,所以它可能在 JScript 中不受支持 [或者]
这确实是我在尝试在cscript.exe
/中调用该方法时看到的wscript.exe
:
对象不支持此属性或方法
但是,我正在使用的最新 JScript 版本是5.812
并且根据此文档,该方法应该在5.8*
JScript 中可用。在这篇文章中也注意到了差异,指向另一篇文章,其中提供了使用htmlfile
COM 对象的解决方法来访问 Windows 脚本宿主 (WSH) JScript 中缺少的属性/方法。
我想知道是否可以使用相同的方法来访问上述方法也是 WSH JScript。
例如,代码应该是这样的
提前感谢您的支持。
PS我在这里也标记了 VBScript,因为如果有人知道如何在 VBScript 中执行此操作,我们很可能可以轻松地将其转换为 JScript。
javascript - 如何找出 ECMAscript 3.0 中可用的 Javascript 方法/功能/等
嘿,我有一个有趣的问题,我在一个使用服务器端 javascript 的平台上工作,但不幸的是这个平台只支持 ECMAscript 3.0。告诉我哪些数组/方法可供我在 thi 版本中使用的最简单方法是什么?
我知道一些显而易见的事情(即箭头函数和大多数数组方法),但我确实花了几个小时编写代码,想知道为什么它不能在这个平台上工作,要弄清楚这是因为我使用了不受支持的方法.
javascript - 按列对 2 数组进行排序,作为函数中的参数
我可以用这个答案按列对数组进行排序它看起来有点像这样:
var myArr = [ [0, 10, 20, "果酱"], [1, 20, 14, "胡萝卜"], [2, 30, 14, "奶油冻"], [3, 40, 16, "牛肉" ], [4, 0, 16, "格温"], ]
排序为: 4, 0 , 16, "gwen" 0, 10, 20, "jam" 1, 20, 14, "carrots" 2, 30, 14, "custard" 3, 40, 16, "beef"
但是,由于它是作为函数表达式编写的,如果我想将列作为参数传递给函数,该如何编写呢?没有具有不同值 vorm 的相同函数的 4 个版本column
。
就个人而言,我发现以传统形式更容易理解和理解:
还是本末倒置?
如果这没有意义,我会再写一次。#spectrumofconfusion
javascript - 如何在 JScript (ECMAScript) 中将图像保存到字节数组中
我正在使用 OLE 创建图像,而不是将其保存为文件,我想获取该图像的二进制文件。如何在 JScript 中执行此操作,因为 Windows 无法识别 ArrayBuffer。是否有类似于 python PIL Convert PIL or OpenCV Image to Bytes without Saving to Disk in JScript?
请注意,我使用的是一个非常古老的 Javascript 规范:“Microsoft JScript”,它符合 EcmaScript 3。
photoshop-script - 这个脚本的完整路径是什么?ECMAScript 相当于 %~f0
这让我难住了。
在(Windows)批处理文件中,我可以将文件名和所述批处理文件的路径归档为:
C:\Users\GwenStefani>C:\projects\scripts\this_file.bat
不过,我想做的是Photoshop。我可以通过以下方式找到当前文档的名称:
...但是刚刚被调用的脚本的文件路径(和名称) - 我完全没有想法。任何人?
javascript - 在类语法和 Object.create 之前,“类”是如何扩展的?
我一直无法找到答案。JavaScript 中的对象有一个继承链;任何函数Function => Object
的链是 ,is 的实例的链,以及TypeError
isTypeError => Error => Object
的链TypeError
,奇怪的是,Function => Function => Object
。
除了直接构造函数之外,我还查找了如何使构造对象从另一个函数继承属性,期望得到的继承链是这样object => constructor => second function
的,并且这是一个构造函数扩展另一个构造函数的方式。我找到的解决方案是<second function>.<call or apply>(this[, optional arguments...])
在构造函数的主体内调用,但object instanceof <second function>
最终返回false
.
进一步的研究揭示了大多数使用类语法的答案 or Object.create
,但这些都是新的,并且自 JavaScript 语言创建以来,一个“类”扩展了另一个在 JavaScript 中的“类”就已经存在,因此还有其他一些方法可以做到这一点。这些信息应该与 JavaScript 构造函数的基本解释一起提到,但事实并非如此。扩展“类”(不是实际的类语法)导致更深的继承链的主要方法是什么?
示例结果:
错误的解决方案:
javascript - JavaScript (ExtendScript):将“null”意外评估为逻辑操作中的第二个操作数
使用 ES3 引擎(Adobe Illustrator CS6),我刚刚遇到了一个意想不到的问题,即当它是 AND 或 OR 的第二个操作数时,似乎会评估“null”。下面的所有表达式都应该返回“null”(而是返回注释)。
据我所知,即使在 ES3 中,这也不是预期的行为。当它是第一个操作数时,“null”似乎按预期进行评估。快速的谷歌搜索并没有产生多少。
有什么办法可以解释吗?
提前致谢。