REACT JS
Background Story
If you just finished JavaScript online courses or other self-taught resources going to your first JS framewo...
For further actions, you may consider blocking this person and/or reporting abuse
@tracycss thank you for the great article :)
This snippet
does not update the original age (I guess the code was intended to update
age
from 22 to 23, right?). Instead it creates a new named property of the array object:This can be checked:
To update the original
age
:Great input Max, I might the values or properties can be changed. Let me update that part.
Thank you. 💯🌟🙂
Despite of what you may see in framework tutorials in terms of "Vanilla JS" that is considered bad form.
The issue is that in arrow functions
this
refers to the lexical scope that created the function.As a consequence each object instance will create a new, separate function.
For a regular method a single function exists on the prototype object of all the object instances that share it - i.e. one single function is reused across all object instances. For traditional methods (including the short hand syntax)
this
(the function context) refers to the calling context.So when using arrow functions for "regular methods" you are creating more functions than you need to.
Arrow functions in class declarations are justified when that function is intended to be used as a callback (e.g. event listener), i.e. it needs to be bound to (
this
of) that particular object instance.Please have a look at:
Also ES6 is the legacy term for ES2015. There is no ES7. Since ES2015 TC39 has annually published updates to the spec, e.g. ES2016, ES2017, etc.
The additions (finished proposals) for each publication year are identified here.
Some people use "ES.Next" when Babel offers implementations of proposals before they reach stage 4 (finished).
Inside a function they are scoped to the function - i.e. not globally accessible - that is what the "immediately invoked function expressions" IIFE are about. However
var
declarations are effectively hoisted to the top of the function - independent of where they appear inside the function.There is a class declaration and class expression.
The MDN's statement:
is a bit misleading. It's more accurate to say that classes are syntax sugar for constructor functions.
"we use
this
keyword to refer to the current object (an instance of the class)."And as already mentioned
this
has a different meaning in arrow and traditional methods:super is a keyword.
super([arguments])
is only valid in the constructor.super.name
orsuper[name]
can be used to access properties (and functions/methods) on the parent.The spread syntax also works on object literals and can also be used to convert an iterable to arguments for a function call.
JSX supports spread attributes:
Some people think of the rest syntax as "gather" because it collects the remaining arguments.
The
rest
syntax can also be used for Array destructuring and Object destructuring.You can use "rest in object destructuring" to omit object properties.
One issue is that these functions are limited to arrays rather than general iterables. While at times Array.from, Object.entries, Object.keys, and Object.values can be helpful often it's more performant to stick to using for..of.
ES7 => ES2016
ECMA-262 7ᵗʰ Edition / June 2016 => ECMAScript® 2016 Language Specification
Edit:
When the "Standard ECMA-262 6th Edition" was being drafted it was referred to as ES6.
However before it was finalized the committee decided to go with the ES2015 moniker to reflect the fact that they intended to publish yearly updates to the specification - which they have done so far.
Publications before June 2015 can be excused for using the ES6 moniker, past that ES2015 should have been used.
It's been 5 years - it's time to let go of the edition based moniker unless one is referring to ES5.1 and below.
Cool...Ill keep this in mind while writing configs that use ES5-11 but hey you do you.
True, I agree Jacob.
Great input, I will take a look at the links.
Good coverage for three months 👍
Edit:
Method vs "arrow function on public class field" weirdness:
Awesome, explanation. 🙂🌟
I think that is a little misleading. The reference is constant, the object is not; fields can be reassigned and added.
Colloquially, those are all updates.
You can not reassign an object or an array but you can still change the values or properties.
Let me change the text a little.
Thanks for pointing this out Robert, yeahhhh :)
In Netscape era, I could read the entire JavaScript specification.
In ES5 times, the paper book for ECMA-262 standard is still reasonable thickness. I have the book from 2011 and it's 245 pages. (the book is free and they'll mail it to you if you request)
Nowadays, JavaScript is so complicated. I read all of MDN but there must be more.
P.S. I prefer chocolate to vanilla.
I would be interested to have a look at the book. You can email me, I appreciate it :)
ecma-international.org/publication...
It's now 860 pages.
It's okay. My email is janetracy00@gmail.com.
I will go through it slowly taking my time. No rush :)
Very useful guide 😀! A lot of people are curious about when to start learning react. Thx for sharing 🤗
Thank you. Glad you enjoyed it. 😁🙌
I hope it helps in any way, don't forget to share to help some else out there.✨
I will 😁👍!!
Awesome 🙌🔥
This was really helpful, thanks 👍
Glad it was helpful in any way, Chris. ✨
Thank you for this! I especially like your description of variables (let/const) and arrow functions. I needed that.
I am glad the information was useful. 🌟💯
Thank you for reading it, Christopher. 🙌🏽
This is really useful. Good job. :)
Thank you so much. Hope it helped in anyway.
Hi Jane, great article. I think you really nailed some of the key JS concepts that should be learned before React! Thanks for the article!
Thank you, Cierra. Glad you found it helpful. ✔✨
Wow, really amazing post - thank you
How much time you need for one like this post, there is so much valuable information and very clearly to understand it!
I a lot of time. But I take breaks and code in between as well. I can't clearly know how much time I use continuously to write it. But if I would make a guess, it would be a min of 6 hours.
Thank you. Hope it helped in any way, Derva :)
good one. I appreciate it.
Thank you, I appreciate it :)
Really nice, polished and concrete article. I really enjoyed reading it 😄🤓
Thank you so much, Yuriy. I really appreciate it. ❤✨
Good article best to know javascript better before jumping into a framework like React. Too many beginners make that mistake.
Please add Computed Property ,if you can
ref : ui.dev/computed-property-names/
And also add shallow copy & deep copy concept, Reference type vs value type.
Thanks!!
Thanks, Harshil, I will do an update on the post :)
thanks ! it was really helpful for me! probably next month i'm going to start with React
I am happy the post will guide you or help you in any way. Don't forget to share with your fellow devs, they might find it useful too :)
Good one. I appreciate it.
Thank you. 💯