diff --git a/README.md b/README.md index cd8460d3..03632e71 100644 --- a/README.md +++ b/README.md @@ -33,74 +33,84 @@ There are a lot of ways to get updates, choose your own # Tips list -- 67 - [Recursion, iteration and tail calls in JS](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2017-03-29-recursion-iteration-and-tail-calls-in-js.md) -- 66 - [State to Props maps with memory](https://github.com/loverajoel/jstips/blob/master/_posts/en/react/2017-03-27-state-to-props-maps-with-memory.md) -- 65 - [Tapping for quick debugging](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2017-03-16-tapping-for-quick-debugging.md) -- 64 - [3 Array Hacks](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2017-03-12-3-array-hacks.md) -- 63 - [Working With Websocket Timeout](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2017-03-09-working-with-websocket-timeout.md) -- 62 - [Preventing Unwanted Scopes Creation in AngularJs](https://github.com/loverajoel/jstips/blob/master/_posts/en/angular/2017-03-07-preventing-unwanted-scopes-creation-in-angularjs.md) -- 61 - [Binding objects to functions](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2017-01-19-binding-objects-to-functions.md) -- 60 - [Three useful hacks](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-10-28-three-useful-hacks.md) -- 59 - [ES6, var vs let](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-08-25-keyword-var-vs-let.md) -- 58 - [Breaking or continuing loop in functional programming](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-08-17-break-continue-loop-functional.md) -- 57 - [Comma operator in JS](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-08-10-comma-operaton-in-js.md) -- 56 - [Copy to Clipboard](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-08-02-copy-to-clipboard.md) -- 55 - [Create an easy loop using an array](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-05-12-make-easy-loop-on-array.md) -- 54 - [How to use optional arguments in functions (with optional callback)](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-05-06-use-optional-arguments.md) -- 53 - [Get File Extension](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-04-21-get-file-extension.md) -- 52 - [Return Values with the 'new' Operator](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-04-05-return-values-with-the-new-operator.md) -- 51 - [DOM event listening made easy](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-03-16-DOM-event-listening-made-easy.md) -- 50 - [Helpful Console Logging Tricks](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-03-03-helpful-console-log-hacks.md) -- 49 - [Easiest way to extract Unix timestamps](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-26-extract-unix-timestamp-easily.md) -- 48 - [Reduce builtin function usage](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-17-reminders-about-reduce-function-usage.md) -- 47 - [Basics: Declarations](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-16-basics-declarations.md) -- 46 - [Detect document ready in pure JS](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-15-detect-document-ready-in-pure-js.md) -- 45 - [Calculate the Max/Min value from an array](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-14-calculate-the-max-min-value-from-an-array.md) -- 44 - [Know the passing mechanism](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-13-know-the-passing-mechanism.md) -- 43 - [Use destructuring in function parameters](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-12-use-destructuring-in-function-parameters.md) -- 42 - [Preventing Unapply Attacks](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-11-preventing-unapply-attacks.md) -- 41 - [Array average and median](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-10-array-average-and-median.md) -- 40 - [Using JSON.stringify](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-09-using-json-stringify.md) -- 39 - [Advanced Properties](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-08-advanced-properties.md) -- 38 - [Flattening multidimensional Arrays](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-07-flattening-multidimensional-arrays-in-javascript.md) -- 37 - [Deduplicate an Array](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-06-deduplicate-an-array.md) -- 36 - [Observe DOM changes in extensions](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-05-observe-dom-changes.md) -- 35 - [Assignment Operators](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-04-assignment-shorthands.md) -- 34 - [Implementing asynchronous loop](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-03-implementing-asynchronous-loops.md) -- 33 - [Create Range 0...N easily using one line](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-02-create-range-0...n-easily-using-one-line.md) -- 32 - [`Map()` to the rescue: adding order to Object properties](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-02-01-map-to-the-rescue-adding-order-to-object-properties.md) -- 31 - [Avoid modifying or passing `arguments` into other functions — it kills optimization](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-31-avoid-modifying-or-passing-arguments-into-other-functions%E2%80%94it-kills-optimization.md) -- 30 - [Converting truthy/falsy values to boolean](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-30-converting-truthy-falsy-values-to-boolean.md) -- 29 - [Speed up recursive functions with memoization](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-29-speed-up-recursive-functions-with-memoization.md) -- 28 - [Currying vs partial application](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-28-curry-vs-partial-application.md) -- 27 - [Short circuit evaluation](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-27-short-circuit-evaluation-in-js.md) -- 26 - [Filtering and sorting a list of Strings](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-26-filtering-and-sorting-a-list-of-strings.md) -- 25 - [Using immediately invoked function expression](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-25-Using-immediately-invoked-function-expression.md) -- 24 - [Use `===` instead of `==`](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-24-use_%3D%3D%3D_instead_of_%3D%3D.md) -- 23 - [Converting to number fast way](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-23-converting-to-number-fast-way.md) -- 22 - [Empty an Array](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-22-two-ways-to-empty-an-array.md) -- 21 - [Shuffle an Array](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-21-shuffle-an-array.md) -- 20 - [Return objects to enable chaining of functions](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-20-return-objects-to-enable-chaining-of-functions.md) -- 19 - [Safe String concatenation](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-19-safe-string-concatenation.md) -- 18 - [Rounding the fast way](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-18-rounding-the-fast-way.md) -- 17 - [Node.js: Run a module if it is not "required"](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-17-nodejs-run-a-module-if-it-is-not-required.md) -- 16 - [Passing arguments to callback functions](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-16-passing-arguments-to-callback-functions.md) -- 15 - [Even simpler way of using `indexOf` as a contains clause](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-15-even-simpler-way-of-using-indexof-as-a-contains-clause.md) -- 14 - [Fat Arrow Functions #ES6](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-14-fat-arrow-functions.md) -- 13 - [Measure performance of a code block](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-13-tip-to-measure-performance-of-a-javascript-block.md) -- 12 - [Pseudomandatory parameters in ES6 functions #ES6](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-12-pseudomandatory-parameters-in-es6-functions.md) -- 11 - [Hoisting](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-11-hoisting.md) -- 10 - [Check if a property is in an Object](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-10-check-if-a-property-is-in-a-object.md) -- 09 - [Template Strings](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-09-template-strings.md) -- 08 - [Converting a Node List to an Array](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-08-converting-a-node-list-to-an-array.md) -- 07 - ["use strict" and get lazy](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-07-use-strict-and-get-lazy.md) -- 06 - [Writing a single method for arrays and a single element](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-06-writing-a-single-method-for-arrays-and-a-single-element.md) -- 05 - [Differences between `undefined` and `null`](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-05-differences-between-undefined-and-null.md) -- 04 - [Sorting Strings with accented characters](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-04-sorting-strings-with-accented-characters.md) -- 03 - [Improve Nested Conditionals](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2016-01-03-improve-nested-conditionals.md) -- 02 - [ReactJS - Keys in children components are important](https://github.com/loverajoel/jstips/blob/master/_posts/en/react/2016-01-02-keys-in-children-components-are-important.md) -- 01 - [AngularJS: `$digest` vs `$apply`](https://github.com/loverajoel/jstips/blob/master/_posts/en/angular/2016-01-01-angularjs-digest-vs-apply.md) -- 00 - [Insert item inside an Array](https://github.com/loverajoel/jstips/blob/master/_posts/en/javascript/2015-12-29-insert-item-inside-an-array.md) + +- 72 +- 71 - [VueJS, How VueJS makes a copy-update-replace inside the data binding](http://www.jstips.co/en/more/vuejs-how-vuejs-makes-a-copy-update-replace-inside-the-data-binding/) +- 70 - [Picking and rejecting object properties](http://www.jstips.co/en/javascript/picking-and-rejecting-object-properties/) +- 69 - [Enhancing React components, Composition](http://www.jstips.co/en/react/enhancing-react-components-composition/) +- 68 - [Why you should use Object.is() in equality comparison](http://www.jstips.co/en/javascript/why-you-should-use-Object.is()-in-equality-comparison/) +- 67 - [Recursion, iteration and tail calls in JS](http://www.jstips.co/en/javascript/recursion-iteration-and-tail-calls-in-js/) +- 66 - [State to Props maps with memory](http://www.jstips.co/en/react/state-to-props-maps-with-memory/) +- 65 - [Tapping for quick debugging](http://www.jstips.co/en/javascript/tapping-for-quick-debugging/) +- 64 - [3 Array Hacks](http://www.jstips.co/en/javascript/3-array-hacks/) +- 63 - [Working With Websocket Timeout](http://www.jstips.co/en/javascript/working-with-websocket-timeout/) +- 62 - [Preventing Unwanted Scopes Creation in AngularJs](http://www.jstips.co/en/angular/preventing-unwanted-scopes-creation-in-angularjs/) +- 61 - [Binding objects to functions](http://www.jstips.co/en/javascript/binding-objects-to-functions/) +- 60 - [Three useful hacks](http://www.jstips.co/en/javascript/three-useful-hacks/) +- 59 - [ES6, var vs let](http://www.jstips.co/en/javascript/keyword-var-vs-let/) +- 58 - [Breaking or continuing loop in functional programming](http://www.jstips.co/en/javascript/break-continue-loop-functional/) +- 57 - [Comma operator in JS](http://www.jstips.co/en/javascript/comma-operaton-in-js/) +- 56 - [Copy to Clipboard](http://www.jstips.co/en/javascript/copy-to-clipboard/) +- 55 - [Create an easy loop using an array](http://www.jstips.co/en/javascript/make-easy-loop-on-array/) +- 54 - [How to use optional arguments in functions (with optional callback)](http://www.jstips.co/en/javascript/use-optional-arguments/) +- 53 - [Get File Extension](http://www.jstips.co/en/javascript/get-file-extension/) +- 52 - [Return Values with the 'new' Operator](http://www.jstips.co/en/javascript/return-values-with-the-new-operator/) +- 51 - [DOM event listening made easy](http://www.jstips.co/en/javascript/DOM-event-listening-made-easy/) +- 50 - [Helpful Console Logging Tricks](http://www.jstips.co/en/javascript/helpful-console-log-hacks/) + +- 49 - [Easiest way to extract Unix timestamps](http://www.jstips.co/en/javascript/extract-unix-timestamp-easily/) +- 48 - [Reduce builtin function usage](http://www.jstips.co/en/javascript/reminders-about-reduce-function-usage/) +- 47 - [Basics: Declarations](http://www.jstips.co/en/javascript/basics-declarations/) +- 46 - [Detect document ready in pure JS](http://www.jstips.co/en/javascript/detect-document-ready-in-pure-js/) +- 45 - [Calculate the Max/Min value from an array](http://www.jstips.co/en/javascript/calculate-the-max-min-value-from-an-array/) +- 44 - [Know the passing mechanism](http://www.jstips.co/en/javascript/know-the-passing-mechanism/) + +- 43 - [Use destructuring in function parameters](http://www.jstips.co/en/javascript/use-destructuring-in-function-parameters/) +- 42 - [Preventing Unapply Attacks](http://www.jstips.co/en/javascript/preventing-unapply-attacks/) +- 41 - [Array average and median](http://www.jstips.co/en/javascript/array-average-and-median/) +- 40 - [Using JSON.stringify](http://www.jstips.co/en/javascript/using-json-stringify/) +- 39 - [Advanced Properties](http://www.jstips.co/en/javascript/advanced-properties/) +- 38 - [Flattening multidimensional Arrays](http://www.jstips.co/en/javascript/flattening-multidimensional-arrays-in-javascript/) + +- 37 - [Deduplicate an Array](http://www.jstips.co/en/javascript/deduplicate-an-array/) +- 36 - [Observe DOM changes in extensions](http://www.jstips.co/en/javascript/observe-dom-changes/) +- 35 - [Assignment Operators](http://www.jstips.co/en/javascript/assignment-shorthands/) +- 34 - [Implementing asynchronous loop](http://www.jstips.co/en/javascript/implementing-asynchronous-loops/) +- 33 - [Create Range 0...N easily using one line](http://www.jstips.co/en/javascript/create-range-0...n-easily-using-one-line/) +- 32 - [`Map()` to the rescue: adding order to Object properties](http://www.jstips.co/en/javascript/map-to-the-rescue-adding-order-to-object-properties/) + +- 31 - [Avoid modifying or passing `arguments` into other functions — it kills optimization](http://www.jstips.co/en/javascript/avoid-modifying-or-passing-arguments-into-other-functions-it-kills-optimization/) +- 30 - [Converting truthy/falsy values to boolean](http://www.jstips.co/en/javascript/converting-truthy-falsy-values-to-boolean/) +- 29 - [Speed up recursive functions with memoization](http://www.jstips.co/en/javascript/speed-up-recursive-functions-with-memoization/) +- 28 - [Currying vs partial application](http://www.jstips.co/en/javascript/curry-vs-partial-application/) +- 27 - [Short circuit evaluation](http://www.jstips.co/en/javascript/short-circuit-evaluation-in-js/) +- 26 - [Filtering and sorting a list of Strings](http://www.jstips.co/en/javascript/filtering-and-sorting-a-list-of-strings/) +- 25 - [Using immediately invoked function expression](http://www.jstips.co/en/javascript/Using-immediately-invoked-function-expression/) +- 24 - [Use `===` instead of `==`](http://www.jstips.co/en/javascript/use_===_instead_of_==/) +- 23 - [Converting to number fast way](http://www.jstips.co/en/javascript/converting-to-number-fast-way/) +- 22 - [Empty an Array](http://www.jstips.co/en/javascript/two-ways-to-empty-an-array/) +- 21 - [Shuffle an Array](http://www.jstips.co/en/javascript/shuffle-an-array/) +- 20 - [Return objects to enable chaining of functions](http://www.jstips.co/en/javascript/return-objects-to-enable-chaining-of-functions/) +- 19 - [Safe String concatenation](http://www.jstips.co/en/javascript/safe-string-concatenation/) +- 18 - [Truncating the fast (but risky) way](http://www.jstips.co/en/javascript/rounding-the-fast-way/) +- 17 - [Node.js: Run a module if it is not "required"](http://www.jstips.co/en/javascript/nodejs-run-a-module-if-it-is-not-required/) +- 16 - [Passing arguments to callback functions](http://www.jstips.co/en/javascript/passing-arguments-to-callback-functions/) +- 15 - [Even simpler way of using `indexOf` as a contains clause](http://www.jstips.co/en/javascript/even-simpler-way-of-using-indexof-as-a-contains-clause/) +- 14 - [Fat Arrow Functions #ES6](http://www.jstips.co/en/javascript/fat-arrow-functions/) +- 13 - [Measure performance of a code block](http://www.jstips.co/en/javascript/tip-to-measure-performance-of-a-javascript-block/) +- 12 - [Pseudomandatory parameters in ES6 functions #ES6](http://www.jstips.co/en/javascript/pseudomandatory-parameters-in-es6-functions/) +- 11 - [Hoisting](http://www.jstips.co/en/javascript/hoisting/) +- 10 - [Check if a property is in an Object](http://www.jstips.co/en/javascript/check-if-a-property-is-in-a-object/) +- 09 - [Template Strings](http://www.jstips.co/en/javascript/template-strings/) +- 08 - [Converting a Node List to an Array](http://www.jstips.co/en/javascript/converting-a-node-list-to-an-array/) +- 07 - ["use strict" and get lazy](http://www.jstips.co/en/javascript/use-strict-and-get-lazy/) +- 06 - [Writing a single method for arrays and a single element](http://www.jstips.co/en/javascript/writing-a-single-method-for-arrays-and-a-single-element/) +- 05 - [Differences between `undefined` and `null`](http://www.jstips.co/en/javascript/differences-between-undefined-and-null/) +- 04 - [Sorting Strings with accented characters](http://www.jstips.co/en/javascript/sorting-strings-with-accented-characters/) +- 03 - [Improve Nested Conditionals](http://www.jstips.co/en/javascript/improve-nested-conditionals/) +- 02 - [ReactJS - Keys in children components are important](http://www.jstips.co/en/react/keys-in-children-components-are-important/) +- 01 - [AngularJS: `$digest` vs `$apply`](http://www.jstips.co/en/angular/angularjs-digest-vs-apply/) +- 00 - [Insert item inside an Array](http://www.jstips.co/en/javascript/insert-item-inside-an-array/) ### License [GNU GENERAL PUBLIC LICENSE](https://github.com/loverajoel/jstips/blob/master/LICENSE.md)