Accueil - JavaScript Tout afficher

L'opérateur !! en Javascript

Wakonda - JavaScript Posté le 6 octobre 2023

L'opérateur !! en JavaScript est souvent appelé "opérateur de double négation" ou "opérateur de non non". Il est principalement utilisé pour convertir une valeur en un booléen. En utilisant cet opérateur, vous pouvez obtenir une valeur booléenne true si la valeur d'origine est "truthy" (évaluée comme vrai dans un contexte booléen) et false si la valeur d'origine est "falsy" (évaluée comme fausse dans un contexte booléen).

Voici un exemple :

let valeur = "Bonjour"; // Une chaîne de caractères non vide (truthy)

let boolResultat = !!valeur; // Utilisation de l'opérateur de double négation

console.log(boolResultat); // Affiche true, car la chaîne de caractères est "truthy"

Dans cet exemple, la variable valeur contient une chaîne de caractères non vide, ce qui signifie qu'elle est évaluée comme "truthy". En utilisant l'opérateur de double négation, nous avons obtenu la valeur booléenne true dans la variable boolResultat.

Voici un autre exemple avec une valeur falsy :

let valeur = 0; // Le nombre zéro (falsy)

let boolResultat = !!valeur; // Utilisation de l'opérateur de double négation

console.log(boolResultat); // Affiche false, car le nombre zéro est "falsy"

Dans ce cas, la variable valeur contient le nombre zéro, qui est évalué comme "falsy". L'opérateur de double négation nous donne donc la valeur booléenne false dans la variable boolResultat.

Lire ...

Supprimer les valeurs en double d'un tableau en JS

Wakonda - JavaScript Posté le 12 septembre 2023

Pour supprimer les valeurs en doublon d'un tableau JavaScript, vous pouvez utiliser différentes approches. Voici une méthode courante pour le faire en utilisant JavaScript :

// Définir un tableau avec des valeurs en doublon
let tableau = [1, 2, 2, 3, 4, 4, 5];

// Utiliser la méthode Set pour supprimer les doublons
let tableauSansDoublons = [...new Set(tableau)];

// Afficher le tableau sans doublons
console.log(tableauSansDoublons);

Dans cet exemple, nous utilisons un ensemble (Set) pour stocker uniquement les valeurs uniques du tableau tableau. Ensuite, nous utilisons l'opérateur de décomposition (...) pour convertir l'ensemble en un nouveau tableau tableauSansDoublons. Le résultat sera un tableau ne contenant que des valeurs uniques.

Le code ci-dessus fonctionne pour les valeurs primitives telles que les nombres, les chaînes de caractères, etc. Si vous travaillez avec des objets complexes, vous devrez utiliser une méthode personnalisée pour supprimer les doublons en fonction de vos critères spécifiques.

Lire ...

JS - Remplacer toutes les occurrences d'une chaîne

Wakonda - JavaScript Posté le 12 septembre 2023

Pour remplacer toutes les occurrences d'une chaîne de caractères en JavaScript, vous pouvez utiliser la méthode replace() en combinaison avec une expression régulière (regex) avec le drapeau global (g). Voici comment le faire en JavaScript :

// Définir la chaîne de caractères d'origine
let texte = "Ceci est un exemple de texte. Remplacez le texte par un nouveau texte.";

// Utiliser la méthode replace() avec une regex globale
let nouveauTexte = texte.replace(/texte/g, "nouveau texte");

// Afficher le résultat
console.log(nouveauTexte);

Dans cet exemple, la chaîne de caractères d'origine texte contient le mot "texte" plusieurs fois. En utilisant replace() avec la regex /texte/g, toutes les occurrences de "texte" dans la chaîne sont remplacées par "nouveau texte". Le résultat sera affiché dans la console.

Assurez-vous d'utiliser la regex globale (/g) pour effectuer le remplacement sur toutes les occurrences de la chaîne. Si vous n'utilisez pas le drapeau global, seule la première occurrence sera remplacée.

Lire ...

"error:0308010C:digital envelope routines::unsupported"

Wakonda - JavaScript, NodeJS Posté le 14 mai 2023

Si, en utilisant yarn, nodeJS (par exemple), vous tombez sur cette erreur, vous pouvez lancer la ligne de commande suivante :

Sur des systèmes Unix (Linux, macOS, ...) :

export NODE_OPTIONS=--openssl-legacy-provider

 Sur Windows :

set NODE_OPTIONS=--openssl-legacy-provider

PowerShell :

$env:NODE_OPTIONS = "--openssl-legacy-provider"
Lire ...

JS - Cacher tous les éléments d'une classe spécifique

Wakonda - JavaScript Posté le 13 mai 2023

En pure JavaScript, on peut cacher tous les éléments HTML portant une classe spécifique en utilisant le code suivant :

for (let element of document.getElementsByClassName("classname")) {
   element.style.display="none";
}
Lire ...

JS - Supprimer tous les caractères d'une chaîne de caractères

Wakonda - JavaScript Posté le 2 juin 2019

En JavaScript, il existe une manière très simple de supprimer la totalité des accents d'une chaîne de caractères quelconque.

Exemple :

const str = "Crème Brulée"
str.normalize('NFD').replace(/[\u0300-\u036f]/g, "")
> 'Creme Brulee'

 

Lire ...

Encoder une URL ou une partie d’une URL en JavaScript

Wakonda - JavaScript Posté le 10 décembre 2018

Si vous tentez de passer certains caractères spéciaux (comme le « + ») dans une URL, vous risquez d’avoir quelques surprises lorsque vous récupérerez la chaîne de caractères côté serveur.

Pour pallier à ce problème, il existe une solution très simple en JavaScript : il s’agit de la fonction encodeURIComponent().

Exemple :

console.log(encodeURIComponent('?x=1+1')); // affichera, dans la console, %3Fx%3D1%2B1

En récupérant, côté serveur, le paramètre « x », on aura bien « 1+1 ». Sans cela, on obtiendrait « 1 1 », ce qui n’est pas le résultat voulu.

Lire ...

iframe - Ouvrir une page dans la fenêtre parent

Wakonda - HTML, JavaScript Posté le 4 septembre 2018

A l'intérieur d'une iframe, si l'on utilise la fonction Javascript suivante :

window.location='https://fr.wikipedia.org/';

La nouvelle page s'affichera à l'intérieur de la balise "iframe". Si l'on souhaite que cette page s'affiche complètement dans le navigateur, il suffira d'utiliser la fonction suivante :

parent.location='https://fr.wikipedia.org/';

 

Lire ...

JS - Boucler sur un objet

Wakonda - JavaScript Posté le 2 août 2018

Nous souhaitons ici boucler sur l'objet suivant :

var hash = {"key1": "value1", "key2": "value2"};
		
hash["key3"] = "value3";

Pour ce faire, il existe deux solutions.

La première :

Object.keys(hash).forEach(function (key) { 
    var value = hash[key]
    console.log(key + " => " + value);
})

La seconde :

for (var key in hash) {
	console.log(key + " => " + hash[key]);
}

 

Lire ...

Inclure sur son site un fichier JS hébergé sur Github

Wakonda - Github, JavaScript Posté le 3 janvier 2016

Si un jour vous avez essayé d'inclure et d'exécuter un fichier Javascript hébergé sur la plateforme Github, il est possible que vous ayez obtenu l'erreur suivante (Google Chrome) :

"Refused to execute script from ... because its MIME type (text/plain) is not executable, and strict MIME type checking is enabled."

Bien évidemment cette erreur vous empêche d'utiliser le Javascript. Pour pouvoir résoudre cette erreur, il suffit d'apporter une légère modification à l'URL. Il faut remplacer "https://raw.github.com/" par "https://cdn.rawgit.com/".

Exemple :

L'URL suivante ...

https://raw.githubusercontent.com/rmm5t/jquery-timeago/master/locales/jquery.timeago.fr.js

donnera :

https://cdn.rawgit.com/rmm5t/jquery-timeago/master/locales/jquery.timeago.fr.js

Lire ...

Upload de fichier avec Ajax, JQuery et XMLHTTPRequest 2

Wakonda - JavaScript Posté le 1 janvier 2016

Ce tutoriel présente une technique afin d'uploader un fichier dans un formulaire directement en Ajax, c'est-à-dire sans rechargement de page, et en utilisant XMLHTTPRequest 2.

Soit le formulaire suivant possédant un input de type « file », un autre de type « text » et enfin un « textarea ». Nous souhaitons envoyer, du côté serveur, l’ensemble des données de ce formulaire à l’aide d’Ajax :

<form id="listedit_form_attachment" action="/app.php/attachment/createTo/111" method="post" enctype="multipart/form-data" >
  <input type="file" id="attachment_fileTempAttachment" name="attachment[fileTempAttachment]" value="" />
  <input type="text" id="attachment_titleAttachment" name="attachment[titleAttachment]" value="" />
  <textarea id="attachment_commentAttachment" name="attachment[commentAttachment]" class="no-horizontal"></textarea>
  <input type="hidden" id="attachment__token" name="attachment[_token]" value="d2ccaa122678bb5d11955691c2293186ced68253" />
  <input type="submit" value="Envoi de fichier" id="listedit_submit" />
</form>

Le code JQuery :

$("#listedit_form_attachment").submit(function()
{
  var fileInput = document.getElementById('attachment_fileAttachment');
  var file = fileInput.files[0];
  var formData = new FormData();
  formData.append('file', file);
  formData.append('attachment[titleAttachment]',$('#attachment_titleAttachment').val());
  formData.append('attachment[commentAttachment]', $('#attachment_commentAttachment').val());
  formData.append('attachment[fileAttachment]', 'file');
  formData.append('attachment[_token]', $('#attachment__token').val());

  $.ajax({
    type: "POST",
    url: "{{ path('Upload_File', { 'toId' : fatherEntity.id }) }}",
    data: formData,
    cache: false,
    contentType: false,
    processData: false,
    async: false,
    beforeSend: function () { $("#divLoading").show(); },
    complete: function () { $("#divLoading").fadeOut(); },
    success: function(data){
      $('#listedit_form_div_{{ divA }}').html(data);
    }
  });

  return false;
});

Remarque :

Les données seront envoyées, du côté serveur, grâce à « FormData ». La méthode « append » va setter les valeurs dans le « formdata ». Dans l’Ajax les variables « cache », « contentType », « processData » et « async » doivent être mises à « false ».

Du côté serveur (Symfony2) :

1/ On utilise exactement les mêmes méthodes que pour un formulaire soumis plus classiquement :

$em = $this->getDoctrine()->getEntityManager();

$attachment = new Attachment();
$attachmentForm = $this->createForm(new AttachmentForm(), $attachment);
$request = $this->getRequest();

$attachmentForm->bindRequest($request);

2/ Pour récupérer les données relatives au fichier, on utilisera :

$file = $request->files->get('file');

// Récupérer les erreurs
$file->getError();

// Récupérer son nom original
$file->getClientOriginalName();

// L’enregistrer dans un dossier
$file->move("attachments/", $file->getClientOriginalName());

 

Lire ...

Tester l’existence d’une fonction en Javascript

Wakonda - JavaScript Posté le 1 janvier 2016

function test(){
  alert("test");
}

function func(){
  if('function' == typeof(test)){
    test();
  }
  else {
    alert("function not found");
  }
}

 

Lire ...

Rechercher

Tags

Publicité

Suivez-nous

Aidez-nous !