JavaScript Tips of the Day

This is an outline of a series of JavaScript tips that were posted on the kirupa.com forums. They consist of JavaScript features, how-tos, and other miscellaneous JavaScript or JavaScript-related knowledge.

The following list is a sequential list in the order the the tips were posted. The original JavaScript Tips of the Day thread also contains a list of these tips separated by category.

Tips

  1. Optional Chaining
  2. Nullish Coalescing Operator
  3. The Official JavaScript Reference: MDN
  4. Detecting Dark Mode
  5. Default Function Parameters
  6. Thenable Objects
  7. Reduce Code with Destructuring
  8. JavaScript (ECMAScript) Versioning
  9. Variables in Strings with Template Literals
  10. Event Attributes also Define Callback Functions
  11. Symbols for Safe Property Names
  12. Internal Slots
  13. Reduce Code with Object Shorthand Syntax
  14. Declarations let, const and class Can’t be Redeclared
  15. Missing Semicolon ASI Gotchas
  16. typeof null === “object”
  17. Overriding Constructor Returns
  18. JavaScript with Types: TypeScript
  19. Symbol.toStringTag
  20. addEventListener Options
  21. Hoisting
  22. Spreading Values
  23. Generators for Iterables
  24. JavaScript Outside the Browser: Node
  25. The Return of ASI
  26. super() Defines this
  27. fetch is the new XMLHttpRequest
  28. Is it an Array?
  29. Create Iterable Objects
  30. ECMAScript New Feature Proposals
  31. Exotic Objects
  32. setTimeout Callback Arguments
  33. Numeric Literal Formats
  34. Scrolling an Element into View
  35. Generating Ranges
  36. Async Functions and await
  37. Expandable Logs With console.dir
  38. Format Time Strings with Padding
  39. with Statements
  40. New Functions With new
  41. Array-likes
  42. Accessor Properties (Getter/Setter)
  43. Not All Functions Are Constructors
  44. Attribute Event Scopes
  45. super in Object Literals
  46. Property Descriptors
  47. Finding Elements in the DOM
  48. Chaining
  49. Default Parameters with Destructuring
  50. Define vs. Assign
  51. Live DOM Lists
  52. Constructors Don’t Need Parens
  53. What Uses enumerable?
  54. The Iterator Protocol
  55. Easily Toggle HTML Classes
  56. Using Destructuring to Swap Values
  57. Interacting With Generators
  58. Detect Errors Early With Linting
  59. Setting HTML Element Styles
  60. The Deal With Prototypes
  61. Stylish Logs
  62. Symbol.species
  63. Static Members Are Inherited
  64. Entering Fullscreen
  65. Proxy Objects
  66. Yield Many With yield*
  67. Variable Shadowing
  68. When the constructor Property Matters
  69. The Window Proxy
  70. Flattening Arrays
  71. A Custom Self-rejecting Promise
  72. globalThis
  73. Awaiting Non-promises
  74. Filter and Map With flatMap
  75. Computed Properties
  76. Global Object vs. Global Declarations
  77. Generator Prototypes
  78. HTML ids Are Global
  79. Mixins
  80. JSFuck
  81. Symbol.hasInstance
  82. Preventing Extensions in Objects
  83. Animations With requestAnimationFrame
  84. What is a NaN?
  85. proto in Object Literals
  86. Promises Block Rendering
  87. Sealing Objects
  88. MutationObserver
  89. Negative Zero
  90. Parameters are Reference Variables
  91. Freezing Objects
  92. Time-based requestAnimationFrame
  93. Constructor Internals
  94. Object Serialization With JSON
  95. Kinds of Comparisons
  96. Console $ Utilities
  97. Canvas for Bitmaps
  98. The Underscore Convention
  99. Labels
  100. Using Generators to Animate
  101. Copying Accessor Properties
  102. String Conversions in Depth
  103. Custom Serialization With toJSON
  104. A Function's Home Object
  105. Trailing Commas
  106. JSON Reviver Function
  107. Mixing class and function Constructors
  108. The debugger Statement
  109. Function Name Bindings
  110. Closure Scopes Limit Closure Variables
  111. Prototypes as Instance of Type
  112. Object.keys vs Array.keys
  113. Undefined vs. Null vs. Nullish
  114. Default Parameter Scope
  115. The Long Arrow Operator
  116. Async Generators
  117. ES2021 Preview