Implementing Short-Circuit Evaluation for Efficient JavaScript Code
Guidelines on using short-circuit evaluation to simplify code and avoid unnecessary operations in JavaScript.
0 likes
9 views
Rule Content
{ "title": "Implementing Short-Circuit Evaluation for Efficient JavaScript Code", "description": "Guidelines on using short-circuit evaluation to simplify code and avoid unnecessary operations in JavaScript.", "category": "JavaScript Cursor Rules", "rules": [ { "id": "JS-SHORT-CIRCUIT-001", "name": "Use Logical AND (&&) for Conditional Execution", "description": "Utilize the logical AND operator to execute code only when a condition is truthy, reducing the need for explicit if statements.", "examples": { "good": [ "user.isAuthenticated && displayUserProfile(user);" ], "bad": [ "if (user.isAuthenticated) {\n displayUserProfile(user);\n}" ] } }, { "id": "JS-SHORT-CIRCUIT-002", "name": "Use Logical OR (||) for Default Values", "description": "Employ the logical OR operator to assign default values when a variable is falsy, streamlining variable initialization.", "examples": { "good": [ "const username = inputName || 'Guest';" ], "bad": [ "const username = inputName ? inputName : 'Guest';" ] } }, { "id": "JS-SHORT-CIRCUIT-003", "name": "Use Nullish Coalescing Operator (??) for Null or Undefined Checks", "description": "Apply the nullish coalescing operator to provide default values only when a variable is null or undefined, preserving other falsy values.", "examples": { "good": [ "const count = userInput ?? 0;" ], "bad": [ "const count = userInput || 0;" ] } }, { "id": "JS-SHORT-CIRCUIT-004", "name": "Use Optional Chaining (?.) for Safe Property Access", "description": "Utilize optional chaining to access nested object properties safely, preventing errors when intermediate properties are null or undefined.", "examples": { "good": [ "const city = user?.address?.city;" ], "bad": [ "const city = user && user.address && user.address.city;" ] } }, { "id": "JS-SHORT-CIRCUIT-005", "name": "Use Logical Assignment Operators for Concise Assignments", "description": "Leverage logical assignment operators (||=, &&=, ??=) to simplify variable assignments based on their current value.", "examples": { "good": [ "let config = {};\nconfig.settings ||= defaultSettings;" ], "bad": [ "let config = {};\nif (!config.settings) {\n config.settings = defaultSettings;\n}" ] } } ] }