gitextract_f1dq9svt/ ├── CONTRIBUTING.md ├── CONTRIBUTING_es_ES.md ├── CONTRIBUTING_zh_CN.md ├── CONTRIBUTING_zh_TW.md ├── LICENSE.md ├── POST_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md ├── README.md └── _posts/ ├── en/ │ ├── angular/ │ │ ├── 2016-01-01-angularjs-digest-vs-apply.md │ │ └── 2017-03-07-preventing-unwanted-scopes-creation-in-angularjs.md │ ├── javascript/ │ │ ├── 2015-12-29-insert-item-inside-an-array.md │ │ ├── 2016-01-03-improve-nested-conditionals.md │ │ ├── 2016-01-04-sorting-strings-with-accented-characters.md │ │ ├── 2016-01-05-differences-between-undefined-and-null.md │ │ ├── 2016-01-06-writing-a-single-method-for-arrays-and-a-single-element.md │ │ ├── 2016-01-07-use-strict-and-get-lazy.md │ │ ├── 2016-01-08-converting-a-node-list-to-an-array.md │ │ ├── 2016-01-09-template-strings.md │ │ ├── 2016-01-10-check-if-a-property-is-in-a-object.md │ │ ├── 2016-01-11-hoisting.md │ │ ├── 2016-01-12-pseudomandatory-parameters-in-es6-functions.md │ │ ├── 2016-01-13-tip-to-measure-performance-of-a-javascript-block.md │ │ ├── 2016-01-14-fat-arrow-functions.md │ │ ├── 2016-01-15-even-simpler-way-of-using-indexof-as-a-contains-clause.md │ │ ├── 2016-01-16-passing-arguments-to-callback-functions.md │ │ ├── 2016-01-17-nodejs-run-a-module-if-it-is-not-required.md │ │ ├── 2016-01-18-rounding-the-fast-way.md │ │ ├── 2016-01-19-safe-string-concatenation.md │ │ ├── 2016-01-20-return-objects-to-enable-chaining-of-functions.md │ │ ├── 2016-01-21-shuffle-an-array.md │ │ ├── 2016-01-22-two-ways-to-empty-an-array.md │ │ ├── 2016-01-23-converting-to-number-fast-way.md │ │ ├── 2016-01-24-use_===_instead_of_==.md │ │ ├── 2016-01-25-Using-immediately-invoked-function-expression.md │ │ ├── 2016-01-26-filtering-and-sorting-a-list-of-strings.md │ │ ├── 2016-01-27-short-circuit-evaluation-in-js.md │ │ ├── 2016-01-28-curry-vs-partial-application.md │ │ ├── 2016-01-29-speed-up-recursive-functions-with-memoization.md │ │ ├── 2016-01-30-converting-truthy-falsy-values-to-boolean.md │ │ ├── 2016-01-31-avoid-modifying-or-passing-arguments-into-other-functions—it-kills-optimization.md │ │ ├── 2016-02-01-map-to-the-rescue-adding-order-to-object-properties.md │ │ ├── 2016-02-02-create-range-0-n-easily-using-one-line.md │ │ ├── 2016-02-03-implementing-asynchronous-loops.md │ │ ├── 2016-02-04-assignment-shorthands.md │ │ ├── 2016-02-05-observe-dom-changes.md │ │ ├── 2016-02-06-deduplicate-an-array.md │ │ ├── 2016-02-07-flattening-multidimensional-arrays-in-javascript.md │ │ ├── 2016-02-08-advanced-properties.md │ │ ├── 2016-02-09-using-json-stringify.md │ │ ├── 2016-02-10-array-average-and-median.md │ │ ├── 2016-02-11-preventing-unapply-attacks.md │ │ ├── 2016-02-12-use-destructuring-in-function-parameters.md │ │ ├── 2016-02-13-know-the-passing-mechanism.md │ │ ├── 2016-02-14-calculate-the-max-min-value-from-an-array.md │ │ ├── 2016-02-15-detect-document-ready-in-pure-js.md │ │ ├── 2016-02-16-basics-declarations.md │ │ ├── 2016-02-17-reminders-about-reduce-function-usage.md │ │ ├── 2016-02-26-extract-unix-timestamp-easily.md │ │ ├── 2016-03-03-helpful-console-log-hacks.md │ │ ├── 2016-03-16-DOM-event-listening-made-easy.md │ │ ├── 2016-04-05-return-values-with-the-new-operator.md │ │ ├── 2016-04-21-get-file-extension.md │ │ ├── 2016-05-06-use-optional-arguments.md │ │ ├── 2016-05-12-make-easy-loop-on-array.md │ │ ├── 2016-08-02-copy-to-clipboard.md │ │ ├── 2016-08-10-comma-operaton-in-js.md │ │ ├── 2016-08-17-break-continue-loop-functional.md │ │ ├── 2016-08-25-keyword-var-vs-let.md │ │ ├── 2016-10-28-three-useful-hacks.md │ │ ├── 2017-01-19-binding-objects-to-functions.md │ │ ├── 2017-03-09-working-with-websocket-timeout.md │ │ ├── 2017-03-12-3-array-hacks.md │ │ ├── 2017-03-16-tapping-for-quick-debugging.md │ │ ├── 2017-03-29-recursion-iteration-and-tail-calls-in-js.md │ │ ├── 2017-04-03-why-you-should-use-Object.is()-in-equality-comparison.md │ │ ├── 2017-04-05-picking-and-rejecting-object-properties.md │ │ ├── 2017-04-11-protocols-for-the-brave.md │ │ ├── 2017-04-24-improving-your-async-functions-with-webworkers.md │ │ ├── 2017-06-14-closures-inside-loops.md │ │ ├── 2017-06-14-immutable-structures-and-cloning.md │ │ ├── 2017-06-15-looping-over-arrays.md │ │ ├── 2017-09-01-hash-maps-without-side-effects.md │ │ ├── 2018-11-25-creating-immutable-objects-in-native-javascript.md │ │ ├── 2020-10-13-what-is-a-functional-inheritance.md │ │ ├── 2020-10-15-what-is-a-currying-function.md │ │ ├── 2020-10-20-what-is-the-temporal-dead-zone.md │ │ ├── 2020-10-22-difference-between-target-and-currentTarget.md │ │ ├── 2020-10-27-what-is-a-spread-operator.md │ │ ├── 2020-11-04-what-is-a-void-operator.md │ │ ├── 2020-11-17-what-is-the-promise-executor.md │ │ └── 2021-02-02-what-is-the-javascript-ternary-operator.md │ ├── more/ │ │ └── 2017-04-06-vuejs-how-vuejs-makes-a-copy-update-replace-inside-the-data-binding.md │ └── react/ │ ├── 2016-01-02-keys-in-children-components-are-important.md │ ├── 2017-03-27-state-to-props-maps-with-memory.md │ ├── 2017-04-04-enhancing-react-components-composition.md │ ├── 2017-04-10-adventurers-guide-to-react.md │ ├── 2017-05-29-upping-performance-by-appending-keying.md │ └── 2021-07-18-trace-the-reason-make-your-page-rerender.md ├── es_ES/ │ ├── angular/ │ │ └── 2016-01-01-angularjs-digest-vs-apply.md │ ├── javascript/ │ │ ├── 2015-12-29-insert-item-inside-an-array.md │ │ ├── 2016-01-03-improve-nested-conditionals.md │ │ ├── 2016-01-04-sorting-strings-with-accented-characters.md │ │ ├── 2016-01-05-differences-between-undefined-and-null.md │ │ ├── 2016-01-06-writing-a-single-method-for-arrays-and-a-single-element.md │ │ ├── 2016-01-07-use-strict-and-get-lazy.md │ │ ├── 2016-01-08-converting-a-node-list-to-an-array.md │ │ ├── 2016-01-09-template-strings.md │ │ ├── 2016-01-10-check-if-a-property-is-in-a-object.md │ │ ├── 2016-01-11-hoisting.md │ │ ├── 2016-01-12-pseudomandatory-parameters-in-es6-functions.md │ │ ├── 2016-01-13-tip-to-measure-performance-of-a-javascript-block.md │ │ ├── 2016-01-14-fat-arrow-functions.md │ │ ├── 2016-01-15-even-simpler-way-of-using-indexof-as-a-contains-clause.md │ │ ├── 2016-01-16-passing-arguments-to-callback-functions.md │ │ ├── 2016-01-17-nodejs-run-a-module-if-it-is-not-required.md │ │ ├── 2016-01-18-rounding-the-fast-way.md │ │ ├── 2016-01-19-safe-string-concatenation.md │ │ ├── 2016-01-20-return-objects-to-enable-chaining-of-functions.md │ │ ├── 2016-01-21-shuffle-an-array.md │ │ ├── 2016-01-22-two-ways-to-empty-an-array.md │ │ ├── 2016-01-23-converting-to-number-fast-way.md │ │ ├── 2016-01-24-use_===_instead_of_==.md │ │ ├── 2016-01-25-Using-immediately-invoked-function-expression.md │ │ ├── 2016-01-26-filtering-and-sorting-a-list-of-strings.md │ │ ├── 2016-01-27-short-circiut-evaluation-in-js.md │ │ ├── 2016-01-28-curry-vs-partial-application.md │ │ ├── 2016-01-29-speed-up-recursive-functions-with-memoization.md │ │ ├── 2016-01-30-converting-truthy-falsy-values-to-boolean.md │ │ ├── 2016-01-31-avoid-modifying-or-passing-arguments-into-other-functions—it-kills-optimization.md │ │ ├── 2016-02-01-map-to-the-rescue-adding-order-to-object-properties.md │ │ ├── 2016-02-02-create-range-0-n-easily-using-one-line.md │ │ ├── 2016-02-03-implementing-asynchronous-loops.md │ │ ├── 2016-02-04-assignment-shorthands.md │ │ ├── 2016-02-05-observe-dom-changes.md │ │ ├── 2016-02-06-deduplicate-an-array.md │ │ ├── 2016-02-07-flattening-multidimensional-arrays-in-javascript.md │ │ ├── 2016-02-08-advanced-properties.md │ │ ├── 2016-02-09-using-json-stringify.md │ │ ├── 2016-02-10-array-average-and-median.md │ │ ├── 2016-02-11-preventing-unapply-attacks.md │ │ ├── 2016-02-12-use-destructuring-in-function-parameters.md │ │ ├── 2016-02-13-know-the-passing-mechanism.md │ │ ├── 2016-02-14-calculate-the-max-min-value-from-an-array.md │ │ ├── 2016-02-15-detect-document-ready-in-pure-js.md │ │ ├── 2016-02-16-basics-declarations.md │ │ ├── 2016-02-17-reminders-about-reduce-function-usage.md │ │ ├── 2016-02-26-extract-unix-timestamp-easily.md │ │ ├── 2016-03-03-helpful-console-log-hacks.md │ │ ├── 2016-03-16-DOM-event-listening-made-easy.md │ │ ├── 2016-04-05-return-values-with-the-new-operator.md │ │ ├── 2016-04-21-get-file-extension.md │ │ ├── 2016-05-06-use-optional-arguments.md │ │ └── 2016-05-12-make-easy-loop-on-array.md │ └── react/ │ └── 2016-01-02-keys-in-children-components-are-important.md ├── zh_CN/ │ ├── angular/ │ │ └── 2016-01-01-angularjs-digest-vs-apply.md │ ├── javascript/ │ │ ├── 2015-12-29-insert-item-inside-an-array.md │ │ ├── 2016-01-03-improve-nested-conditionals.md │ │ ├── 2016-01-04-sorting-strings-with-accented-characters.md │ │ ├── 2016-01-05-differences-between-undefined-and-null.md │ │ ├── 2016-01-06-writing-a-single-method-for-arrays-and-a-single-element.md │ │ ├── 2016-01-07-use-strict-and-get-lazy.md │ │ ├── 2016-01-08-converting-a-node-list-to-an-array.md │ │ ├── 2016-01-09-template-strings.md │ │ ├── 2016-01-10-check-if-a-property-is-in-a-object.md │ │ ├── 2016-01-11-hoisting.md │ │ ├── 2016-01-12-pseudomandatory-parameters-in-es6-functions.md │ │ ├── 2016-01-13-tip-to-measure-performance-of-a-javascript-block.md │ │ ├── 2016-01-14-fat-arrow-functions.md │ │ ├── 2016-01-15-even-simpler-way-of-using-indexof-as-a-contains-clause.md │ │ ├── 2016-01-16-passing-arguments-to-callback-functions.md │ │ ├── 2016-01-17-nodejs-run-a-module-if-it-is-not-required.md │ │ ├── 2016-01-18-rounding-the-fast-way.md │ │ ├── 2016-01-19-safe-string-concatenation.md │ │ ├── 2016-01-20-return-objects-to-enable-chaining-of-functions.md │ │ ├── 2016-01-21-shuffle-an-array.md │ │ ├── 2016-01-22-two-ways-to-empty-an-array.md │ │ ├── 2016-01-23-converting-to-number-fast-way.md │ │ ├── 2016-01-24-use_===_instead_of_==.md │ │ ├── 2016-01-25-Using-immediately-invoked-function-expression.md │ │ ├── 2016-01-26-filtering-and-sorting-a-list-of-strings.md │ │ ├── 2016-01-27-short-circuit-evaluation-in-js.md │ │ ├── 2016-01-28-curry-vs-partial-application.md │ │ ├── 2016-01-29-speed-up-recursive-functions-with-memoization.md │ │ ├── 2016-01-30-converting-truthy-falsy-values-to-boolean.md │ │ ├── 2016-01-31-avoid-modifying-or-passing-arguments-into-other-functions—it-kills-optimization.md │ │ ├── 2016-02-01-map-to-the-rescue-adding-order-to-object-properties.md │ │ ├── 2016-02-02-create-range-0-n-easily-using-one-line.md │ │ ├── 2016-02-03-implementing-asynchronous-loops.md │ │ ├── 2016-02-04-assignment-shorthands.md │ │ ├── 2016-02-05-observe-dom-changes.md │ │ ├── 2016-02-06-deduplicate-an-array.md │ │ ├── 2016-02-07-flattening-multidimensional-arrays-in-javascript.md │ │ ├── 2016-02-08-advanced-properties.md │ │ ├── 2016-02-09-using-json-stringify.md │ │ ├── 2016-02-10-array-average-and-median.md │ │ ├── 2016-02-11-preventing-unapply-attacks.md │ │ ├── 2016-02-12-use-destructuring-in-function-parameters.md │ │ ├── 2016-02-13-know-the-passing-mechanism.md │ │ ├── 2016-02-14-calculate-the-max-min-value-from-an-array.md │ │ ├── 2016-02-15-detect-document-ready-in-pure-js.md │ │ ├── 2016-02-16-basics-declarations.md │ │ ├── 2016-02-17-reminders-about-reduce-function-usage.md │ │ ├── 2016-02-26-extract-unix-timestamp-easily.md │ │ ├── 2016-03-03-helpful-console-log-hacks.md │ │ ├── 2016-03-16-DOM-event-listening-made-easy.md │ │ ├── 2016-04-05-return-values-with-the-new-operator.md │ │ ├── 2016-04-21-get-file-extension.md │ │ ├── 2016-05-06-use-optional-arguments.md │ │ ├── 2016-05-12-make-easy-loop-on-array.md │ │ ├── 2016-08-02-copy-to-clipboard.md │ │ ├── 2016-08-10-comma-operaton-in-js.md │ │ ├── 2016-08-17-break-continue-loop-functional.md │ │ ├── 2016-08-25-keyword-var-vs-let.md │ │ ├── 2016-10-28-three-useful-hacks.md │ │ ├── 2017-01-19-binding-objects-to-functions.md │ │ ├── 2017-03-09-working-with-websocket-timeout.md │ │ ├── 2017-03-12-3-array-hacks.md │ │ ├── 2017-03-16-tapping-for-quick-debugging.md │ │ ├── 2017-04-03-why-you-should-use-Object.is()-in-equality-comparison.md │ │ └── 2017-04-05-picking-and-rejecting-object-properties.md │ ├── more/ │ │ └── 2017-04-06-vuejs-how-vuejs-makes-a-copy-update-replace-inside-the-data-binding.md │ └── react/ │ └── 2016-01-02-keys-in-children-components-are-important.md └── zh_TW/ ├── angular/ │ ├── 2016-01-01-angularjs-digest-vs-apply.md │ └── 2017-03-07-preventing-unwanted-scopes-creation-in-angularjs.md ├── javascript/ │ ├── 2015-12-29-insert-item-inside-an-array.md │ ├── 2016-01-03-improve-nested-conditionals.md │ ├── 2016-01-04-sorting-strings-with-accented-characters.md │ ├── 2016-01-05-differences-between-undefined-and-null.md │ ├── 2016-01-06-writing-a-single-method-for-arrays-and-a-single-element.md │ ├── 2016-01-07-use-strict-and-get-lazy.md │ ├── 2016-01-08-converting-a-node-list-to-an-array.md │ ├── 2016-01-09-template-strings.md │ ├── 2016-01-10-check-if-a-property-is-in-a-object.md │ ├── 2016-01-11-hoisting.md │ ├── 2016-01-12-pseudomandatory-parameters-in-es6-functions.md │ ├── 2016-01-13-tip-to-measure-performance-of-a-javascript-block.md │ ├── 2016-01-14-fat-arrow-functions.md │ ├── 2016-01-15-even-simpler-way-of-using-indexof-as-a-contains-clause.md │ ├── 2016-01-16-passing-arguments-to-callback-functions.md │ ├── 2016-01-17-nodejs-run-a-module-if-it-is-not-required.md │ ├── 2016-01-18-rounding-the-fast-way.md │ ├── 2016-01-19-safe-string-concatenation.md │ ├── 2016-01-20-return-objects-to-enable-chaining-of-functions.md │ ├── 2016-01-21-shuffle-an-array.md │ ├── 2016-01-22-two-ways-to-empty-an-array.md │ ├── 2016-01-23-converting-to-number-fast-way.md │ ├── 2016-01-24-use_===_instead_of_==.md │ ├── 2016-01-25-Using-immediately-invoked-function-expression.md │ ├── 2016-01-26-filtering-and-sorting-a-list-of-strings.md │ ├── 2016-01-27-short-circiut-evaluation-in-js.md │ ├── 2016-01-28-curry-vs-partial-application.md │ ├── 2016-01-29-speed-up-recursive-functions-with-memoization.md │ ├── 2016-01-30-converting-truthy-falsy-values-to-boolean.md │ ├── 2016-01-31-avoid-modifying-or-passing-arguments-into-other-functions—it-kills-optimization.md │ ├── 2016-02-01-map-to-the-rescue-adding-order-to-object-properties.md │ ├── 2016-02-02-create-range-0-n-easily-using-one-line.md │ ├── 2016-02-03-implementing-asynchronous-loops.md │ ├── 2016-02-04-assignment-shorthands.md │ ├── 2016-02-05-observe-dom-changes.md │ ├── 2016-02-06-deduplicate-an-array.md │ ├── 2016-02-07-flattening-multidimensional-arrays-in-javascript.md │ ├── 2016-02-08-advanced-properties.md │ ├── 2016-02-09-using-json-stringify.md │ ├── 2016-02-10-array-average-and-median.md │ ├── 2016-02-11-preventing-unapply-attacks.md │ ├── 2016-02-12-use-destructuring-in-function-parameters.md │ ├── 2016-02-13-know-the-passing-mechanism.md │ ├── 2016-02-14-calculate-the-max-min-value-from-an-array.md │ ├── 2016-02-15-detect-document-ready-in-pure-js.md │ ├── 2016-02-16-basics-declarations.md │ ├── 2016-02-17-reminders-about-reduce-function-usage.md │ ├── 2016-02-26-extract-unix-timestamp-easily.md │ ├── 2016-03-03-helpful-console-log-hacks.md │ ├── 2016-03-16-DOM-event-listening-made-easy.md │ ├── 2016-04-05-return-values-with-the-new-operator.md │ ├── 2016-04-21-get-file-extension.md │ ├── 2016-05-06-use-optional-arguments.md │ ├── 2016-05-12-make-easy-loop-on-array.md │ ├── 2016-08-02-copy-to-clipboard.md │ ├── 2016-08-10-comma-operaton-in-js.md │ ├── 2016-08-17-break-continue-loop-functional.md │ ├── 2016-08-25-keyword-var-vs-let.md │ ├── 2016-10-28-three-useful-hacks.md │ ├── 2017-01-19-binding-objects-to-functions.md │ ├── 2017-03-09-working-with-websocket-timeout.md │ ├── 2017-03-12-3-array-hacks.md │ ├── 2017-03-16-tapping-for-quick-debugging.md │ ├── 2017-03-29-recursion-iteration-and-tail-calls-in-js.md │ ├── 2017-04-03-why-you-should-use-Object.is()-in-equality-comparison.md │ ├── 2017-04-05-picking-and-rejecting-object-properties.md │ └── 2017-06-15-looping-over-arrays.md ├── more/ │ └── 2017-04-06-vuejs-how-vuejs-makes-a-copy-update-replace-inside-the-data-binding.md └── react/ ├── 2016-01-02-keys-in-children-components-are-important.md ├── 2017-03-27-state-to-props-maps-with-memory.md ├── 2017-04-04-enhancing-react-components-composition.md └── 2017-04-10-adventurers-guide-to-react.md