用途:ServiceNow 的服务端脚本运行在 Mozilla Rhino 引擎上,只支持 ES5(2009 标准),使用 ES6+ 语法会直接导致 SyntaxError。本技能用于强制服务端脚本仅使用 ES5 语法,并给出常见写法的转换对照。
主要能力与转换规则:const/let 改为 var;箭头函数 () => {} 改为 function() {};模板字符串 Hello ${name} 改为 'Hello ' + name;for (x of arr) 改为基于索引的 for 循环;对象解构 {a, b} = obj 改为 var a = obj.a; var b = obj.b;;数组解构 [a, b] = arr 改为按下标取值;展开运算符 ...spread 改用 Array.prototype.slice.call();class 改用构造函数;async/await 与 Promise 改用 GlideRecord 回调。默认参数需手动判断 typeof priority === "undefined" 后赋值。
使用方式:在部署任何服务端脚本前,逐项检查是否存在 const/let、箭头函数 =>、模板字符串 `、解构 {a, b}、for...of 等写法,并替换为上述 ES5 等价写法。
适用场景:ServiceNow 服务端脚本(如业务规则、脚本包含等)。
限制与例外:客户端脚本(Client Scripts、UI Policies)在浏览器中运行,可能支持 ES6+,取决于用户浏览器;但为最大兼容性仍建议使用 ES5。资料未提供安装命令、收费或平台信息。