es5-compliance

安装量: 51
排名: #14384

安装

npx skills add https://github.com/groeimetai/snow-flow --skill es5-compliance

ES5 Compliance for ServiceNow ServiceNow runs on Mozilla Rhino engine which only supports ES5 JavaScript (2009 standard). All server-side scripts MUST use ES5 syntax. Forbidden Syntax (WILL CAUSE SyntaxError) ES6+ Syntax ES5 Alternative const x = 5 var x = 5 let items = [] var items = [] () => {} function() {} Hello ${name} 'Hello ' + name for (x of arr) for (var i = 0; i < arr.length; i++) {a, b} = obj var a = obj.a; var b = obj.b; [a, b] = arr var a = arr[0]; var b = arr[1]; ...spread Use Array.prototype.slice.call() class MyClass {} Use constructor functions async/await Use GlideRecord callbacks Promise Use GlideRecord with callbacks Common Patterns Variable Declarations // WRONG - ES6 const MAX_RETRIES = 3 let currentUser = gs . getUser ( ) // CORRECT - ES5 var MAX_RETRIES = 3 var currentUser = gs . getUser ( ) Functions // WRONG - Arrow functions var active = incidents . filter ( ( inc ) => inc . active ) var process = ( ) => { return "done" } // CORRECT - ES5 functions var active = [ ] for ( var i = 0 ; i < incidents . length ; i ++ ) { if ( incidents [ i ] . active ) { active . push ( incidents [ i ] ) } } var process = function ( ) { return "done" } String Concatenation // WRONG - Template literals var message = Incident ${ number } assigned to ${ user } // CORRECT - String concatenation var message = "Incident " + number + " assigned to " + user Loops // WRONG - for...of for ( var item of items ) { gs . info ( item ) } // CORRECT - Traditional for loop for ( var i = 0 ; i < items . length ; i ++ ) { gs . info ( items [ i ] ) } Default Parameters // WRONG - Default parameters function process ( incident , priority = 3 ) { // ... } // CORRECT - Manual defaults function process ( incident , priority ) { if ( typeof priority === "undefined" ) { priority = 3 } // ... } Automatic Validation Before deploying any server-side script: Check for const / let declarations - convert to var Check for arrow functions => - convert to function() Check for template literals ` - convert to string concatenation Check for destructuring {a, b} - convert to explicit property access Check for for...of loops - convert to index-based loops Exception: Client Scripts Client-side scripts (Client Scripts, UI Policies) run in the browser and MAY support ES6+ depending on user's browser. However, for maximum compatibility, ES5 is still recommended.

返回排行榜