Open Ibrahim86Ali opened 1 year ago
@bermarte hi bertarte hope you are doing well thanks for checking
Pure functions, side effects
@Ibrahim86Ali Have a look at this tutorial https://www.youtube.com/watch?v=F8YAolU9XkI
Imperative programming
Maybe this can help you? https://www.linkedin.com/pulse/imperative-vs-declarative-programming-javascript-yehuda-margolis/ I would suggest coming back to this argument later if you want. Just so you know, you can be a programmer without knowing the difference between imperative and declarative programming. It's more about theory.
Pure functions, side effects
@Ibrahim86Ali Have a look at this tutorial https://www.youtube.com/watch?v=F8YAolU9XkI
Imperative programming
Maybe this can help you? https://www.linkedin.com/pulse/imperative-vs-declarative-programming-javascript-yehuda-margolis/ I would suggest coming back to this argument later if you want. Just so you know, you can be a programmer without knowing the difference between imperative and declarative programming. It's more about theory.
sorry for replaying late .....so helpful video thanks a lot
Inside JS
Learning Objectives
Priorities: π₯, π£, π₯, π (click to learn more)
There is a lot to learn in this repository. If you can't master all the material at once, that's expected! Anything you don't master now will always be waiting for you to review when you need it. These 4 emoji's will help you prioritize your study time and to measure your progress: - π₯: Understanding this material is required, it covers the base skills you'll need to move on. You do not need to finish all of them but should feel comfortable that you could with enough time. - π£: You have started all of these exercises and feel you could complete them all if you just had more time. It may not be easy for you but with effort you can make it through. - π₯: You have studied the examples and started some exercises if you had time. You should have a big-picture understanding of these concepts/skills, but may not be confident completing the exercises. - π: These concepts or skills are not necessary but are related to this module. If you are finished with π₯, π£ and π₯ you can use the π exercises to push yourself without getting distracted from the module's main objectives. ---
0. Asserting
let
vs.const
: You can explain the differences betweenlet
andconst
including: uninitialized declarations and reassignment. You can determine when a variable can be assigned withconst
in a program.===
and!==
operators compare strings, and can predict the result of any string comparison.console.log
: You can useconsole.log
to create program traces in the console, and to print other helpful info for developers.console.assert
: You can use theconsole.assert
for assertion testing, and can write a helpful message assertion message.1. Primitives and Operators
typeof
: You can predict thetypeof
operator's output for values from any of the 5 main primitive types.Boolean()
,String()
andNumber()
to convert between primitive types.&&
,||
,!
and? :
.&&
and||
.+
,!
and>
.2. Control Flow
if
/else
statements.while
loops.for-of
Strings: You can predict and trace simple programs that iterate through the characters of a string usingfor-of
.for
loops works by refactoring simplefor
loops intowhile
loops.break
.continue
.3. Functions
5. Unit Testing
describe
/it
/expect.toEqual
functions are defined by a testing library and made available as global variables in a testing environment. They are not part of JavaScript!file.__.js
. Sub-extensions are a convention for developers and development tools. They do not change how JavaScript inside the file works.6. ES Modules
?deps
lens to visualize the dependencies in a folder.'use strict'
!export const _ = () => {};
import { _ } from './path/to/file.js';
6. Using Functions
7. Arrays
const arr = ['items'];
.at()
and a positive or negative index.arr[4] = 'hello'
.Array.isArray(something)
const shallowCopy = [...arr];
8. Functional Array Methods
[].every
[].some
[].map
[].filter
[].find
[].reduce
9. Multiple Interactions
const obj = { a: 1, b: 2 };
.Week 1
Need Help With
Nothing for now.
What went well?
loops and functions in javascript are so helpful.
What went less well?
I need more practice with loops and functions.
Lessons Learned
Week 2
Need Help With
1 - do more Reverse-Engineering for a program ....need examples ... 2- understanding what do we mean by Imperative Programming??? 3- Side-Effects: when building my own function
What went well?
array methods ...
What went less well?
Conditional (ternary) operator ? :
Rest vs Spread Operator
Lessons Learned
a loooot of things become more clear
Week 3
Need Help With
(am very lazy this month ) => {console.log('be less lazy next month') }
What went well?
testing using jest
What went less well?
Lessons Learned
-Testing -Array Methods -.spread,...rest -callbacks
Week 4
Need Help With
nothing
What went well?
avoiding Side-Effects in functions
What went less well?
nothing
Lessons Learned
1 - Functions Set the parameters to default value in a function
2 - Arrays Learn using more army methods arr.push; arr.pop,Β arr.shift;Β arr.unshift 3 -Objects Accessing objects by dot notation and square brackets and also Object.values() , Object.keys () ..and builtin .ja objects like Math
4 - ES6 modern Language Features import/export