Outils pour utilisateurs

Outils du site


informatique:javascript

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
informatique:javascript [24/11/2024 12:32] – [Promise] cyrilleinformatique:javascript [16/02/2025 10:12] (Version actuelle) – [Vue.js] cyrille
Ligne 25: Ligne 25:
  - JavaScript performance playground: jsPerf aims to provide an easy way to create and share test cases, comparing the performance of different JavaScript snippets by running benchmarks.  - JavaScript performance playground: jsPerf aims to provide an easy way to create and share test cases, comparing the performance of different JavaScript snippets by running benchmarks.
  
 +===== Syntaxe =====
 +
 +Il y a plein d'évolutions de la syntaxe ...
 +
 +  * https://dev.to/hmpljs/10-javascript-tips-and-tricks-that-will-be-useful-47fa
 +
 +
 +**Template Literals**:
 +
 +<code javascript>
 +const name = "Alice";
 +const greeting = `Hello, ${name}!
 +Welcome to JavaScript tips!`;
 +
 +console.log(greeting);
 +</code>
 +
 +**The Spread Operator**:
 +
 +<code javascript>
 +const arr1 = [1, 2];
 +const arr2 = [3, 4];
 +const combined = [...arr1, ...arr2]; // [1, 2, 3, 4]
 +
 +const user = { name: "Alice", age: 25 };
 +const updatedUser = { ...user, age: 26 }; // { name: "Alice", age: 26 }
 +</code>
 +
 +**Short-Circuit Evaluation**:
 +
 +<code javascript>
 +const isLoggedIn = true;
 +const welcomeMessage = isLoggedIn && "Welcome back!";
 +console.log(welcomeMessage); // Output: Welcome back!
 +
 +const username = null;
 +const displayName = username || "Guest";
 +console.log(displayName); // Output: Guest
 +</code>
 +
 +or **Use ||= Operator for Default Assignment**
 +
 +<code javascript>
 +let count;
 +count ||= 10;
 +console.log(count); // 10
 +</code>
 +
 +**Destructuring**:
 +
 +<code javascript>
 +// Before destructuring
 +const user = { name: "Alice", age: 25 };
 +const name = user.name;
 +const age = user.age;
 +
 +// Using destructuring
 +const { name, age } = user;
 +console.log(name, age); // Output: Alice 25
 +</code>
 +
 +**Optional Chaining for Safer Access**: 
 +
 +<code javascript>
 +const user = { profile: { email: "user@example.com" } };
 +
 +console.log(user?.profile?.email); // Output: user@example.com
 +console.log(user?.settings?.theme); // Output: undefined (no error)
 +</code>
 +
 +**Default Parameters**:
 +
 +<code javascript>
 +function greet(name = "Guest") {
 +  return `Hello, ${name}!`;
 +}
 +
 +console.log(greet()); // Output: Hello, Guest!
 +console.log(greet("Alice")); // Output: Hello, Alice!
 +</code>
 +
 +**Array Methods: Map, Filter, and Reduce**:
 +
 +<code javascript>
 +const numbers = [1, 2, 3, 4];
 +
 +// Transform each element with map
 +const doubled = numbers.map(num => num * 2); // [2, 4, 6, 8]
 +
 +// Filter elements based on a condition
 +const evens = numbers.filter(num => num % 2 === 0); // [2, 4]
 +
 +// Aggregate values with reduce
 +const sum = numbers.reduce((acc, num) => acc + num, 0); // 10
 +</code>
 +
 +More tips:
 +  * https://dev.to/hmpljs/10-javascript-tips-and-tricks-that-will-be-useful-47fa
 +  * https://dev.to/jagroop2001/20-javascript-tricks-every-developer-must-know-4pcj
  
 ===== Tools ===== ===== Tools =====
Ligne 65: Ligne 164:
  
 =====Divers===== =====Divers=====
- 
-[[http://www.html5rocks.com/en/tutorials/websockets/basics/|Introducing WebSockets: Bringing Sockets to the Web]] 
- 
-[[http://fr.slideshare.net/community_streamdataIO/2015-0622-parisjs-websocket-vs-sse-v2|Websocket vs SSE]] (//[[/glossaire/SSE|Server Sent events (SSE)]]//) 
  
  
Ligne 428: Ligne 523:
  
 Voir aussi: Voir aussi:
 +  * UI Suite for Vue.js https://primevue.org compliant with [[/glossaire/WCAG|WCAG 2.0]], 80+ components
   * [[/informatique/php/laravel#vuejs|Laravel & Vue.js]]   * [[/informatique/php/laravel#vuejs|Laravel & Vue.js]]
   * collection de scripts et plugins : http://www.vuescript.com   * collection de scripts et plugins : http://www.vuescript.com
Ligne 798: Ligne 894:
  
 A way to asynchronously process JavaScript arrays to avoid locking up the browser (and further, to avoid displaying the long-running script dialog) : [[http://www.nczonline.net/blog/2009/08/11/timed-array-processing-in-javascript/|Timed array processing in JavaScript]] A way to asynchronously process JavaScript arrays to avoid locking up the browser (and further, to avoid displaying the long-running script dialog) : [[http://www.nczonline.net/blog/2009/08/11/timed-array-processing-in-javascript/|Timed array processing in JavaScript]]
 +
 +==== Promise ====
 +
 +  * [[https://dev.to/kishan45/callbacks-vs-promises-vs-asyncawait-detailed-comparison-42np|Callbacks vs. Promises vs. Async/Await: Detailed Comparison]]
 +  * [[https://dev.to/afifsohaili/dealing-with-promises-in-an-array-with-async-await-5d7g|Dealing with Promises In an Array with async/await]]
 +
 +==== WebSockets ====
 +
 +[[http://www.html5rocks.com/en/tutorials/websockets/basics/|Introducing WebSockets: Bringing Sockets to the Web]] (2012)
 +
 +[[http://fr.slideshare.net/community_streamdataIO/2015-0622-parisjs-websocket-vs-sse-v2|Websocket vs SSE]] (//[[/glossaire/SSE|Server Sent events (SSE)]]//) (2015)
 +
  
 ==== Browser Detection and Cross Browser Support ==== ==== Browser Detection and Cross Browser Support ====
Ligne 818: Ligne 926:
 </code> </code>
  
-Voir [[https://developer.mozilla.org/En/Browser_Detection_and_Cross_Browser_Support|Browser Detection and Cross Browser Support]]+Voir <del>[[https://developer.mozilla.org/En/Browser_Detection_and_Cross_Browser_Support|Browser Detection and Cross Browser Support]]</del> MDN Search results for [[https://developer.mozilla.org/en-US/search?q=Browser%20Detection%20and%20Cross%20Browser%20Support|Browser Detection and Cross Browser Support]]
  
-Et sur la page [[http://www-archive.mozilla.org/docs/web-developer/sniffer/browser_type.html|The Ultimate JavaScript Client Sniffer, Version 3.03]] il est bien écrit que cette méthode est obsolète.+Et sur la page [[http://www-archive.mozilla.org/docs/web-developer/sniffer/browser_type.html|The Ultimate JavaScript Client Sniffer, Version 3.03]] il est bien écrit que cette **méthode est obsolète**.
  
 === Détection de la version de javascript === === Détection de la version de javascript ===
Ligne 868: Ligne 976:
     });     });
 </code> </code>
 +
 +=== shallow copy deep copy ===
 +
 +Shallow Copy ne copie pas les valeurs références, alors qu'une Deep Coopy créée de nouveaux objets pour les valeurs (autres que scalaires).
 +
 +Shallow copy:
 +<code javascript>
 +// Using the Spread Operator (...):
 +const shallowCopy = { ...originalObject };
 +// Using Object.assign():
 +const shallowCopy = Object.assign({}, originalObject);
 +</code>
 +Deep copy:
 +<code javascript>
 +const deepCopy = JSON.parse(JSON.stringify(original));
 +</code>
 +
 +  * https://dev.to/hkp22/javascript-shallow-copy-vs-deep-copy-examples-and-best-practices-3k0a
 +
  
informatique/javascript.1732447960.txt.gz · Dernière modification : 24/11/2024 12:32 de cyrille

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki