1603269637
Arrow functions, introduced in ES6, can be quite concise compared to traditional functions. If you don’t like the extra syntax of a traditional function, the streamlined nature of an arrow function can be very appealing. Furthermore, if you need to perform something a little more complex, stringing together a couple of these allows you to achieve the desired results without having your codes looking too convoluted. Let me illustrate with an example.
Let’s say I have an array containing data from one table and I want to augment each table row with additional data elements from another table, assuming there are foreign keys that tie the two tables. The example code is written with React/Redux but I will bypass the part of populating the Redux store with JSON data from backend API. Just remember that the two Redux store items in question contain the two tables we are working with.
#arrow-functions #es6 #javascript #map-function
1605017502
Other then the syntactical differences. The main difference is the way the this keyword behaves? In an arrow function, the this keyword remains the same throughout the life-cycle of the function and is always bound to the value of this in the closest non-arrow parent function. Arrow functions can never be constructor functions so they can never be invoked with the new keyword. And they can never have duplicate named parameters like a regular function not using strict mode.
this.name = "Bob";const person = {
name: “Jon”,<span style="color: #008000">// Regular function</span> func1: <span style="color: #0000ff">function</span> () { console.log(<span style="color: #0000ff">this</span>); }, <span style="color: #008000">// Arrow function</span> func2: () => { console.log(<span style="color: #0000ff">this</span>); }
}
person.func1(); // Call the Regular function
// Output: {name:“Jon”, func1:[Function: func1], func2:[Function: func2]}person.func2(); // Call the Arrow function
// Output: {name:“Bob”}
const person = (name) => console.log("Your name is " + name); const bob = new person("Bob"); // Uncaught TypeError: person is not a constructor
#arrow functions #javascript #regular functions #arrow functions vs normal functions #difference between functions and arrow functions
1603269637
Arrow functions, introduced in ES6, can be quite concise compared to traditional functions. If you don’t like the extra syntax of a traditional function, the streamlined nature of an arrow function can be very appealing. Furthermore, if you need to perform something a little more complex, stringing together a couple of these allows you to achieve the desired results without having your codes looking too convoluted. Let me illustrate with an example.
Let’s say I have an array containing data from one table and I want to augment each table row with additional data elements from another table, assuming there are foreign keys that tie the two tables. The example code is written with React/Redux but I will bypass the part of populating the Redux store with JSON data from backend API. Just remember that the two Redux store items in question contain the two tables we are working with.
#arrow-functions #es6 #javascript #map-function
1598093640
When I was at a coding boot camp learning about JavaScript and ES6, everyone in class seemed to have some level of confusion around normal function declarations and the new ES6 arrow function declarations. Common questions we had included:
After doing some research, I found that normal functions and arrow functions are actually not interchangeable in certain circumstances. Apart from the syntax, normal functions and arrow functions have another major difference: the way they bind the this
keyword in JavaScript.
Let’s look at a very simple example. Suppose we have a simple JavaScript object:
const obj1 = {
fullName: 'Object 1',
color: 'red',
print: function() {
console.log(`${this.fullName} is ${this.color}`);
}
};
obj1.print(); // Object 1 is red
view raw
object1.js hosted with ❤ by GitHub
We have a print
method on obj1
that logs a string to the console. The result is what we have expected, that this
in the print
method refers to obj1
itself.
Now let’s create another object with a slightly different print
method:
const obj2 = {
fullName: 'Object 2',
color: 'blue',
print: function() {
setTimeout(function() {
console.log(`${this.fullName} is ${this.color}`);
}, 1000);
}
};
obj2.print(); // undefined is undefined
view raw
object2.js hosted with ❤ by GitHub
Now the print
method will only log the resulting string after one second due to setTimeout
. But why is it logging undefined is undefined
instead of Object 2 is blue
?
#es2015 #javascript #es6 #javascript-tips #arrow-functions #function
1603176407
Nowadays, all my code is based on the use of arrow functions. If you are still not using them yourself, then don’t be ashamed of who you are. That’s your parent’s job. Instead, find about all the benefits that you can get by using arrow functions like the cool kids.
This is an example of arrow function and the same code written traditionally:
const arrowFunction = (arg1, arg2) => arg1 + arg 2;
const traditionalFunction = function(arg1, arg2) {
return arg1 + arg2;
};
You may notice that the code is shorter and that there is an arrow. Everything before the arrow is arguments of the function and everything after the arrow is always returned as the result of the function.
If you need a function that contains multiple statements you can still do this:
const arrowFunction = (arg1, arg2) => {
const result = arg1 + arg2;
return result;
};
#javascript #js #functional-javascript #functional-programming #javascript-tips
1601069940
Function Expression vs Function Declaration in JavaScript.
It was until during one of the JavaScript mock interviews did I came across the term function expression.
The question was: What is the difference between these two syntax?
function x(){
}
let x = function(){
}
I was clueless for a moment. After thinking a little, I could only come up with: the second syntax invokes an _anonymous _function and is assigned to a variable.
I was alien to the term hoisting.
In this article, we will acquaint ourselves with three simple terms: function declaration,_ function expression, _and hoisting.
What is function declaration?
Function declaration is also known as _function statement. _It contains the name of the function, parameters, and a return statement. **Naming the function **is what sets function declaration apart. Parameters and return statement is optional.
Function Declaration
What is function expression?
Function expression also has a name, parameters, and return statement. All of which are optional. The important thing to bear in mind is: the function here is _assigned _to a JavaScript variable.
Function Expression
#function-expression #function-declaration #functions-in-javascript #coding #javascript #express