class Meal { … }import { foo } from 'ma_lib.js'(e) => e+1`Hello ${name}`return { x, y }const { x, y } = position(){ x, ...pos }class Meal {
constructor(food) {
this.food = food
}
eat() {
const food = this.food
this.food = null
return food
}
}
⚠ this n'est pas optionnel en Javascript.
|
|
| Classes | Method properties | Le couteau suisse |
|---|---|---|
|
|
|
Callback hell ?
résolu avec async/await !
| Javascript | Kotlin |
|---|---|
|
|
|
|
|
|
|
|
"" + 1
"" + (() => 1)
(1 as any)[0]
any is hell 🤮 but useful 🤫
type StringOrNumber = string | number;
type ProcessStates = "open" | "closed";
type OddNumbersUnderTen = 1 | 3 | 5 | 7 | 9;
capable de gérer : Union & Intersection types, Duck Typing, anonymous object types...
| Classes | Method properties | Le couteau suisse |
|---|---|---|
|
|
|
debugger)
| Angular « sur le marché depuis plus longtemps » ?? FAUX : React (2013) profité du temps de dev de Angular >= 2 (2016) pour percer Angular a « bien plus d'outils et librairies compatibles » ?? pas sûr, écosystème React très riche performance : Angular n'est PAS plus performant (comparaison) |
|
|
data + props)
|
|
| React | Vue.js | Angular | |
|---|---|---|---|
| documentation | bonne | ||
| apprentissage | moyen | moyen | long |
| flexibilité, nombreux choix à faire | oui | moyen | framework complet |
| poids | moyen | léger | moyen/gros |
| compilation | pour JSX | optionnel (nécessaire pour les Single File Component) | pour Typescript |
| vérification de types | possibilité d’utiliser Typescript | possibilité d’utiliser Typescript mais pas complètement mature dans IDE | Typescript |
| React | Vue.js | Angular | |
|---|---|---|---|
| taille équipe | petite | grande | |
| taille application | moyenne ou grande avec Redux | petite | grande |
| travail avec designers en HTML | difficile à cause de JSX | possible | possible |
| utilisé par | Airbnb, Dropbox, eBay, Facebook, Netflix... | Adobe, Alibaba, Baidu, Expedia, GitLab, Laravel, Xiaomi | Google, Microsoft, Deutsche Bank, Forbes, PayPal, Samsung |