### Les programmes suivants renvoient-ils une erreur ? <!-- il ne faut pas de ; --> *Programme 1* ```javascript console.log('Bonjour') console.log( 'Rebonjour') ``` <!--let my-variable; *Programme 2* --> ```javascript let _variable; let _; let my-variable; let x$; let 我; let متغير ; ``` *Programme 3* <!-- utilisation du var. Avec var il y a un warning seulement --> ```javascript let variable; let variable = 55; ``` *Programme 4* <!--//"use strict";--> ```javascript message = "Bonjour"; ``` *Programme 5* <!-- Pas de soucis. Une variable peut changer de type;--> ```javascript let variable = 12.5; variable = "Je suis une chaine de caractère"; ``` ### Que renvoient les programmes suivants ? <!-- NaN --> ```javascript console.log("trois"/5); ``` <!-- Il faut utiliser les backticks --> ```javascript let prenom = "Azzeddine"; console.log("Bonjour ${prenom}, ça va ?"); ``` <!-- true false true --> ```javascript console.log( 5 > 3 ); console.log( 10 > 5 > 2 ); console.log( 10 > 5 < 2 ); ``` <!--In JavaScript, null is not a “reference to a non-existing object” or a “null pointer” like in some other languages. It’s just a special value which represents “nothing”, “empty” or “value unknown”.--> ```javascript let prenom; console.log(prenom); ``` <!-- 200 --> ```javascript console.log("10" * "20"); ``` <!-- 509 79 529 -4 --> ```javascript console.log("50" + 9); console.log(5 + 2 + "9"); console.log("5" + 2 + 9); console.log("5" - 9); ``` <!-- + opérateur unire, convertit en nombre 509 79 529 -4 --> ```javascript console.log( +'3' + +'20'); ``` <!-- 1 -1 1 2 6 9px .. " -9 5" -95 1 NaN -2 --> ```javascript console.log( "" + 1 + 0) console.log( "" - 1 + 0) console.log( true + false) console.log( 6 / "3") console.log( "2" * "3") console.log( 4 + 5 + "px") console.log( "$" + 4 + 5) console.log( "4" - 2) console.log( "4px" - 2) console.log( " -9 " + 5) console.log( " -9 " - 5 ) console.log( null + 1 ) console.log( undefined + 1 ) console.log( " \t \n" - 2 ) ``` Que renvoient les comparaisons suivantes ? <!-- lettres minuscules toujours plus grandes a= 97 et Z=90 5 == '5' : vrai parceque conversion Faux --> ```javascript console.log( 10 > 50 ) console.log( "a" < "Z" ) console.log( 5 == "5" ) console.log( 5 === "5" ) console.log( 0 == false ) ``` <!-- console.log(priority_1 || priority_2 || priority_3); console.log(priority_1 ?? priority_2 ?? priority_3); console.log(0 || 100); console.log(0 ?? 100); equivalent à : (a !== null && a !== undefined) ? a : b; || doesn’t distinguish between false, 0, an empty string "" and null/undefined. --> Complétez le programme suivant ```javascript let priority_1 ; // ex. priority_1= null; let priority_2 ; // ex. priority_2= "Envoyer email"; let priority_3 ; // ex. priority_3= "Nettoyer bureau"; // Ecrivez un programme qui permet d'afficher la prochaine tâche prioritaire à faire // Exemple d'exécution : // ex. priority_1= null; // ex. priority_2= "Envoyer email"; // ex. priority_3= "Nettoyer bureau"; // => afficher "la prochaine tache de la to-do liste est : Envoyer email" //PS: une solution des solutions possibles tient sur une ligne de code ``` Qu'affiche ce programme ? Le résultat aurait-il été différent avec ```break``` à la place de ```continue``` ? ```javascript for (let i = 0; i < 10; i++) { if (i == 5 ) continue; console.log (i); } ``` Réecrivez le programme suivant en utilisant un switch ```javascript if(browser == 'Edge') { console.log("Mouais"); } else if (browser == 'Chrome' || browser == 'Firefox' || browser == 'Safari' || browser == 'Opera') { console.log( 'Navigateur supporté' ); } else { console.log( 'Navigateur inconnu !' ); } ``` Quelle est la valeur de ```result``` ? <!-- 11 --> ```javascript function numberFunction() { let number = 5; } let number = 10; numberFunction() result = number + 1; console.log( result ); ``` Réecrivez cette fonction sans ```if``` ```javascript function showIdentity(id, login){ if(id === undefined) id = "No ID"; if(login === undefined) login = "Unknown"; console.log(id); console.log(login); } ``` Analyse le programme suivant. Est-ce que vous identifiez des problèmes au niveau de l'appel aux fonctions, de la decalaration ou de la défintion des fonctions ? <!-- La fonction myFunction_2 est définie en utilisant une expression de fonction assignée à une variable. En JavaScript, les expressions de fonction (comme celle assignée à myFunction_2) ne sont pas hoistées (élevées) comme les déclarations de fonction. Cela signifie que lorsque myFunction_2 est appelée avant sa déclaration, elle renvoie une erreur : TypeError: myFunction_2 is not a function. Hoisting des déclarations de fonction : La fonction myFunction est déclarée avec une déclaration de fonction et est donc hoistée. Cela signifie que vous pouvez appeler myFunction() avant sa définition, ce qui fonctionne correctement. --> ```javascript // début du programme myFunction() myFunction_2(); function myFunction (){ console.log("my function"); } let myFunction_2 = function(){ console.log("my function 2"); } //fin du programme ``` Complétez la fonction ```traiterTexte``` (et ajoutez-en d'autres si besoin) qui permet de formater un texte au format donné. Voir exemples d'exécution <!-- function prefixerWP(text) { return "wp_" + text; } function traiterTexte(text, formatFunc) { // Applique la fonction de formatage fournie const formattedText = formatFunc(text); console.log(formattedText); } --> ```javascript function traiterTexte( ... ){ // ... console.log(formattedText); } traiterTexte("users", prefixerWP) // => "wp_users" traiterTexte("users", prefixerPS) // => "ps_users" tratierTexte("users", parentheser) // => "(users)" tratierTexte("users", parentheser) // => "(users)" tratierTexte("users", parentheser_2) // => "((users))" tratierTexte("users", parentheser_3) // => "(((users)))" ```